ホームページ >バックエンド開発 >PHPチュートリアル >PHP配列フィルタリングに関連する問題

PHP配列フィルタリングに関連する問題

WBOY
WBOYオリジナル
2016-06-13 12:49:43836ブラウズ

PHP 配列フィルタリングの問題
配列を想定
array(0 => array('catid' => 10 , 'parent' => '1') , 1 => array('catid' => 11 , 'parent' => 1) , array('catid' => 21 , 'parent' => 2) );

親の値だけを2のままにしたい場合はどうすればよいでしょうか?
私は初心者なので、助けていただければ幸いです。ありがとうございます。

php
-----解決策---------
$a = array(0 => array('catid' => 10 , 'parent' => '1') , 1 => array('catid' => 11 , 'parent' => 1) , array('catid' => 21 , 'parent' => 2) );<br />
$t = array_map(function($v) { return array('parent' => $v['parent']); }, $a);<br />
/*<br />
php 5.2.x 写作<br />
$t = array_map(create_function('$v', 'return array("parent" => $v["parent"]);'), $a);<br />
*/<br />
print_r($t);
配列
(
[0] => 配列
(
[親] = & GT 1
)

[1] => 配列
(
[親] = & GT 1
)

[2] => 配列
(
[親] = & GT 2
)

)

-----解決策---------
関数 intersect2nd($arr1, $ arr2, $key)
{
foreach($arr2 as $v) $tmpArr[] = $v[$key];
foreach($arr1 as $k=>$v) if(in_array($v[$key], $tmpArr)) $arr[$k] = $v;
$arr を返す;
}
$a=array(0 => array('catid' => 10 , 'parent' => '1') , 1 => array('catid' => 11 , 'parent' => 1) 、array('catid' => 21 、'parent' => 2) );
$b=array(array('parent' => 2)); //必要なキーと値を含めて、同様の配列を自分で作成するだけです
$c= intersect2nd($a, $b, '親');
var_export($c);

私の記憶では、これはモデレーターがしつこく口説いているコードです。あえて踏み越えるつもりはありません
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。