配列のキー/値操作関数、配列関数_PHP チュートリアル
配列のキー/値操作関数、配列関数
PHPでは、配列の各要素はキー/値で構成されており、要素のキーを通じて対応するキーの値にアクセスします。 「連想配列」とは文字列のキー名を持つ配列を指し、「インデックス」と「キー名」は同じものを指します。 "index" 多指数配列の数値添え字。配列処理関数を使用すると、配列内の各要素のキーと値を簡単に操作して、新しい配列を生成できます。
①関数array_values()
array_values() 関数は、配列内のすべての要素の値を返します。使い方は非常に簡単です。必須パラメータは 1 つだけで、指定された配列が渡され、指定された配列内のすべての値を含む配列が返されることを指定します。ただし、キー名は保持されず、返された配列は、0 から始まり 1 ずつ増加する連続した数値キーを使用して再インデックスされます。これは、配列内にカオス要素を含む配列に適しているか、または連想配列をインデックス付き配列に変換できます。コードは次のようになります:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php
$contact = array (
"ID" => 1,
"姓名" => "高某" ,
"公司" => "A公司" ,
"地址" => "北京市" ,
"电话" => "(010)98765432"
);
//array_values()函数传入数组$contact 重新索引返回一个新数组
print_r( array_values ( $contact ));
print_r( $contact ); //原数组$contact内容元素不变
?>
|
プログラムを実行した結果は次のとおりです:
Array([0]=>1 [1]=>Gao[2]=>Company A[3]=>Beijing City[4]= > ;(010)98765432)
Array([ID]=>1 [名前]=>高 [会社]=>A社 [住所]=>北京 [電話]=>( 010)98765432 )
②関数array_keys()
array_keys() 関数は、配列内のすべてのキー名を返します。この関数には 1 つの必須パラメーターと 2 つのオプションのパラメーターがあります。その関数のプロトタイプは次のとおりです。
array array_keys(array input[,mixed search_value[,bool strict]]) オプションのパラメータ search_value が指定されている場合は、指定された値のキー名のみが返されます。それ以外の場合は、入力配列内のすべてのキー名が返されます。戻ってきた。 PHP5 以降では、strict パラメーターを使用して一致比較を実行できます。ブール値を渡す必要があります。FALSE がデフォルト値であり、タイプには依存しません。 TRUE 値が渡された場合、型に応じて、指定された値を持つキー名が返されます。関数 array_keys() で使用されるコードは次のとおりです:
<?php
$lamp = array ( "a" => "Linux" , "b" => "Apache" , "c" => "MySQL" , "d" => "php" );
print_r( array_keys ( $lamp )); //输出Array([0]=>a [1]=>b [2]=>c)
print_r( array_keys ( $lamp , "Apache" )); //使用第二个可选参数输出:Array([0]=>b)
$a = array (10,20,30, "10" ); //声明一个数组,其中元素的值有整数10和字符串"10"
print_r( array_keys ( $a , "10" ,false)); //使用第三个参数(false)输出:Array([0]=>0 [1]=>3)
$a = array (10,20,30, "10" ); //声明一个数组,其中元素的值有整数10和字符串"10"
print_r( array_keys ( $a , "10" ,true)); //使用第三个参数(true)输出:Array([0]=>3)
?>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php
//in_array()函数的简单使用形式
$os = array ( "Mac" , "NT" , "Trix" , "Linux" );
if (in_array( "Trix" , $os )){ //这个条件成立,字符串Trix在数组$os中
echo "Got Trix" ;
}
if (in_array( "mac" , $os )){ //这个条件失败,因为in_array()是区分大小写的
echo "Got mac" ;
}
//in_array严格类型检查例子
$a = array ( '1.10' ,12.4,1.13);
//第三个参数为true,所以字符串'12.4'和浮点数12.4类型不同
if (in_array( '12.4' , $a ,true)){
echo "'12.4' found with strict checkn" ;
}
if (in_array(1.13, $a ,true)){ //这个条件成立,执行下面的语句
echo "1.13 found with strict checkn" ;
}
<code class="php spaces"> //in_array()中还可以用数组当做第一个参数作为查询条件 //in_array() では、数组当做第一パラメータを查询条件として使用できます<code class="php spaces"> $a = array ( array ( 'p' , 'h' ), array ( 'p' , 'r' ), 'o' );
<code class="php spaces"> if (in_array( array ( 'p' , 'h' ), $a )){ //数组array('p','h')在数组$a中存在 $a<code class="php spaces"> echo "'ph'was foundn" ; = <code class="php spaces"> } array<code class="php spaces"> if (in_array( array ( 'h' , 'p' ), $a )){ //数组array('h','p')在数组$a中不存在 (<code class="php spaces"> echo "'hp'was foundn" ; array<code class="php spaces"> } ( |
array🎜(🎜'p'🎜,🎜'r'🎜),🎜'o'🎜);🎜
🎜if🎜(in_array(🎜array🎜(🎜'p'🎜,🎜'h'🎜),🎜$a🎜)){ 🎜//数组array('p','h ')数組$a中に存在します🎜
🎜echo🎜 "'ph' が見つかりました"🎜;🎜
🎜}🎜
🎜if🎜(in_array(🎜array🎜(🎜'h'🎜,🎜'p'🎜),🎜$a🎜)){ 🎜//数组array('h','p ')数組$a中には存在しません🎜
🎜echo🎜 "'hp' was foundn"🎜;🎜
🎜}🎜
?>🎜
🎜
🎜
🎜
🎜array_search() 関数を使用して検索することもできます。この関数は in_array() と同じパラメータを持ち、指定された値を検索し、存在する場合は対応するキー名を返します。また、データ型の厳密な判定もサポートしています。関数 array_search() で使用されるコードは次のとおりです:
1
2
3
4
5
6
7
<?php
$lamp
=
array
(
"a"
=>
"Linux"
,
"b"
=>
"Apache"
,
"c"
=>
"MySQL"
,
"d"
=>
"php"
);
echo
array_search
(
"php"
,
$lamp
);
//输出:d(在数组$lamp中,存在字符串"php"则输出下标d)
$a
=
array
(
"a"
=>
"8"
,
"b"
=>8,
"c"
=>
"8"
);
echo
array_search
(8,
$a
,ture);
//输出b(严格按类型检索,整型8对应的下标b)
?>
さらに、array_key_exists() 関数を使用すると、指定されたキー名またはインデックスが配列内に存在するかどうかを確認することもできます。キー名は配列内で一意である必要があるため、データ型を判断する必要はありません。 isset() 関数を使用して配列内のキー名を確認することもできます。単一の isset() は配列内の NULL 値に対して TRUE を返しませんが、array_key_exists() は返します。コードは次のようになります:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$search_array
=
array
(
'first'
=>1,
'second'
=>4);
//声明一个关联数组,其中包含两个元素
if
(
array_key_exists
(
'first'
,
$search_arry
)){
//检查下标为first对应的元素是否在数组中
echo
"键名为'first'的元素在数组中"
;
}
$search_array
=
array
(
'first'
=> null,
'second'
=>4);
//声明一个关联数组,第二个元素的值为NULL
isset(
$search_array
[
'first'
]);
//用isset()检索下标为first的元素返回false
array_key_exists
(
'first'
,
$search_array
);
//用array_key_exists()检索下标为first的元素返回true
?>
④関数array_flip()
array_flip() は配列内のキーと値を交換するために使用されます。同じ値が複数回出現する場合、最後のキー名が値として使用され、前の要素が上書きされます。元の配列の値のデータ型が文字列または整数ではない場合、関数はエラーを報告します。この関数にはパラメータが 1 つだけあり、その関数プロトタイプは次のとおりです:
配列 array_flip(trans)
パラメータは必須です。処理する配列を入力する必要があり、配列内の各要素のキーと値を交換した配列を返します。関数 array_flip() で使用されるコードは次のとおりです:
1
2
3
4
5
6
7
8
9
10
<?php
$lamp
=
array
(
"os"
=>
"linux"
,
"WebServer"
=>
"Apache"
,
"Database"
=>
"MySQL"
,
"Language"
=>
"PHP"
);
//输出:Array([linux]=>os [Apache]=>WebServer [MySQL]=>Database [PHP]=Language);
print_r(
array_flip
(
$lamp
));
//使用array_flip()函数交换数组中的键和值
//在数组中如果元素的值相同,则使用array_flip()会发生冲突
$trans
=
array
(
"a"
=>1,
"b"
=>1,
"c"
=2);
print_r(
array_flip
(
$trans
));
//现在$trans变成了:Array([1]=> b [2]=> c)
?>
⑤関数array_reverse()
array_reverse() は、元の配列の要素の順序を逆にし、新しい配列を作成して返します。この関数には 2 つのパラメーターがあり、その関数プロトタイプは次のとおりです:
array array_reverse(array array[,bool prepare_keys])
最初のパラメータは必須であり、入力として配列を受け取ります。 2 番目のパラメータはオプションです。TRUE を指定すると、要素のキー名は変更されません。それ以外の場合、キー名は失われます。関数 array_reverse() で使用されるコードは次のとおりです:
1
2
3
4
5
6
7
<?php
$lamp
=
array
(
"OS"
=>
"Linux"
,
"WebServer"
=>
"Apache"
,
"Database"
=>
"MySQL"
,
"Language"
=>
"PHP"
);
//使用array_reverse()函数将数组$lamp中的元素的顺序翻转
print_r(
array_reverse
(
$lamp
));
//输出的结果Array([Language]=>PHP [Database]=>MySQL [WebServer]=>Apache [OS]=>Linux)
?>
>> この記事への固定リンク: http://php.ncong.com/php_course/arry_function/key-value.html
#include
int CompactIntegers(int a[], int *m)
{
int i,j,n;//ここでは C コンパイラを使用したので修正しました
/ / C++ であれば、参照転送を直接使用できるはずです。最初に書いた内容によれば、メインプログラムで n の値を変更できるはずです
n=*m;
for(i=0; i {
if(a [i]==0)
{
for(j=i;j a[j]=a[j+1];
n- -;
}
}
*m=n;
return j;
}
void main()
{
int i,n,a[100];
printf("番号を入力してください:\n");
scanf("%d",&n);
for(i=0;i {
printf("%d の数値を入力してください:",i+1);
scanf("%d ",&(a[i]));
}
CompactIntegers(a,&n);
for(i=0;i {
printf("%d の数値は: %d\n ",i+1, a[i]);
}
}
コードはどうなっているのでしょうか? 配列にはもともと重複した値がありますか?
http://www.bkjia.com/PHPjc/860919.html

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP で配列をディープ コピーする方法には、json_decode と json_encode を使用した JSON エンコードとデコードが含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

PHP で配列のディープ コピーを実行するためのベスト プラクティスは、 json_decode(json_encode($arr)) を使用して配列を JSON 文字列に変換し、それから配列に戻すことです。 unserialize(serialize($arr)) を使用して配列を文字列にシリアル化し、それを新しい配列に逆シリアル化します。 RecursiveIteratorIterator を使用して、多次元配列を再帰的に走査します。

多次元配列のソートは、単一列のソートとネストされたソートに分類できます。単一列のソートでは、array_multisort() 関数を使用して列ごとにソートできますが、ネストされたソートでは、配列を走査してソートするための再帰関数が必要です。具体的な例としては、製品名による並べ替えや、売上数量や価格による化合物の並べ替えなどがあります。

C++ の例外処理は、特定のエラー メッセージ、コンテキスト情報を提供し、エラーの種類に基づいてカスタム アクションを実行するカスタム例外クラスを通じて強化できます。 std::Exception から継承した例外クラスを定義して、特定のエラー情報を提供します。カスタム例外をスローするには、throw キーワードを使用します。 try-catch ブロックでdynamic_castを使用して、キャッチされた例外をカスタム例外タイプに変換します。実際の場合、open_file 関数は FileNotFoundException 例外をスローします。例外をキャッチして処理すると、より具体的なエラー メッセージが表示されます。

PHP の array_group() 関数を使用すると、指定したキーで配列をグループ化し、重複する要素を見つけることができます。この関数は次の手順で動作します。 key_callback を使用してグループ化キーを指定します。必要に応じて、value_callback を使用してグループ化値を決定します。グループ化された要素をカウントし、重複を特定します。したがって、array_group() 関数は、重複する要素を見つけて処理するのに非常に役立ちます。
