[価格] => 9.99
)
[1] => 配列
(
[名前] =>チェス
[価格] => 12.99
)
[2] => 配列
(
[名前] => バックギャモン
[価格] => 29.99
)
)
array_reduce() 関数を使用して簡単に実装できます。
コードは次のとおりです |
コードをコピー |
関数フィルターゲーム($game){
return ($game['price']
}
$names = array_filter($games, 'filterGames');
|
array_reduce() 関数は、コールバック関数を満たさないすべての要素をフィルターで除外します。この例のコールバック関数は filterGames です。価格が 11.99 より低い要素はすべて保持され、その他は削除されます。このコード スニペットの実行結果:
コードは次のとおりです |
コードをコピー |
配列
(
[1] => 配列
(
[名前] =>チェッカーズ
[価格] => 9.99
)
) |
オブジェクトを配列に変換する
要件の 1 つは、オブジェクトを配列形式に変換することです。この方法は思っているよりもはるかに簡単で、強制的に変換するだけで十分です。例:
コードは次のとおりです |
コードをコピー |
クラスゲーム{
パブリック $name;
公開価格;
}
$game = 新しいゲーム();
$game->name = 'チェス';
$ゲーム->価格 = 12.99;
print_r(array($game)); この例を実行すると、次の結果が生成されます。
配列
(
[0] => ゲームオブジェクト
(
[名前] => チェス
[価格] => 12.99
)
)
|
オブジェクトを配列に変換すると、予期しない副作用が生じる可能性があります。たとえば、上記のコード スニペットでは、すべてのメンバー変数はパブリック型ですが、プライベート変数の戻り結果は異なります。別の例を次に示します:
コードは次のとおりです
| コードをコピー
|
クラスゲーム{
パブリック $name;
プライベート $_price;
パブリック関数 setPrice($price) {
$this->_price = $price;
}
}
$game = 新しいゲーム();
$game->name = 'チェス';
$game->setPrice(12.99);
print_r(array($game));このコード スニペットを実行します:
配列
(
[0] => ゲームオブジェクト
(
[名前] => チェス
[_price:ゲーム:プライベート] => 12.99
)
)
|
ご覧のとおり、区別するために、配列に保存されたプライベート変数のキーが自動的に変更されます。
配列の「自然な順序付け」
「英数字」文字列に対する PHP のソート結果は未定義です。たとえば、配列に多数の画像名が保存されているとします。
コードは次のとおりです
| コードをコピー
|
$arr = 配列(
0=>'madden2011.png',
1=>'madden2011-1.png',
2=>'madden2011-2.png',
3=>'madden2012.png'
);
|
この配列をどのようにソートしますか? sort() を使用して配列を並べ替えると、結果は次のようになります:
コードは次のとおりです |
コードをコピー |
配列
(
[0] =>madden2011-1.png
[1] =>madden2011-2.png
[2] =>madden2011.png
[3] =>madden2012.png
) |
これが望ましい場合もありますが、元の添字を保持したい場合はどうすればよいでしょうか?この問題を解決するには、自然な方法で配列を並べ替える natsort() 関数を使用できます。
コードは次のとおりです
| コードをコピー
|
$arr = 配列(
0=>'madden2011.png',
1=>'madden2011-1.png',
2=>'madden2011-2.png',
3=>'madden2012.png'
);
natsort($arr);
echo " "; print_r($arr); echo " ";
?>
実行結果:
配列
(
[1] =>madden2011-1.png
[2] =>madden2011-2.png
[0] =>madden2011.png
[3] =>madden2012.png
)
|
http://www.bkjia.com/PHPjc/632897.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632897.html技術記事 PHP でデータを走査するときは、list、foreach、および each が一般的に使用されますが、次のチュートリアルでは使用されない可能性があります。配列の走査の高度な例をいくつか紹介したいと思います...
。
|