ホームページ >バックエンド開発 >PHPチュートリアル >2 次元配列から 1 次元配列から同じ ID を持つ複数の新しい 2 次元配列を抽出する PHP アルゴリズムについて質問します。
PHP の 2 次元配列アルゴリズム
PHP を学んだばかりですが、問題が発生しました。助けてください。ありがとうございます。
本当にわかりません~~~ルールを教えてもらえますか?以下に挙げた 6 つの配列のパターンは見つかりませんでした。 。 。 。特に 2 つの arr5 に含まれる内容は、人々を直接混乱させます。 。 。
6、最後の arr5 は次のようになります: arr6
arr6(
array('id'=>105,'value'=>100)
); 申し訳ありませんが、コピー エラーです。
つまり、ID が同じ場合は 2 次元配列に入れる必要があります。
上記の配列には 100、101、102、103、104、105 の 6 種類の ID があります。それぞれ6つの異なる2次元配列。
$arr = array( array('id'=>100,'value'=>100), array('id'=>100,'value'=>130), array('id'=>100,'value'=>140), array('id'=>100,'value'=>150), array('id'=>101,'value'=>1600), array('id'=>101,'value'=>100), array('id'=>102,'value'=>100), array('id'=>102,'value'=>100), array('id'=>102,'value'=>100), array('id'=>103,'value'=>100), array('id'=>103,'value'=>100), array('id'=>104,'value'=>100), array('id'=>104,'value'=>100), array('id'=>104,'value'=>100), array('id'=>105,'value'=>100) ); foreach($arr as $key=>$val){ $newarr[$val['id']][]=array('id'=>$val['id'],'value'=>$val['value']); } $arr1=$newarr['100']; $arr2=$newarr['101']; $arr3=$newarr['102']; $arr4=$newarr['103']; $arr5=$newarr['104']; $arr6=$newarr['105'];
$arr = array( array('id'=>100,'value'=>100), array('id'=>100,'value'=>130), array('id'=>100,'value'=>140), array('id'=>100,'value'=>150), array('id'=>101,'value'=>1600), array('id'=>101,'value'=>100), array('id'=>102,'value'=>100), array('id'=>102,'value'=>100), array('id'=>102,'value'=>100), array('id'=>103,'value'=>100), array('id'=>103,'value'=>100), array('id'=>104,'value'=>100), array('id'=>104,'value'=>100), array('id'=>104,'value'=>100), array('id'=>105,'value'=>100));foreach($arr as $v) $res[$v['id']][] = $v;//print_r($res);//你可以直接使用这个数组//也可以导入变量表后访问extract(array_values($res), EXTR_PREFIX_ALL, 'arr');//如print_r($arr_3);
ahui_lcm さんと xuzuning さん、本当にありがとうございます。こんな簡単な変換は思いつきませんでした。本当に恥ずかしいです。
二人と他のヒーローに質問させてください。PHP 配列の操作をすぐに改善するにはどうすればよいでしょうか?他の言語の配列の影響を常に受けます。
ありがとう!私を最初に助けてくれた ahui_lcm さんにまだポイントをあげなければなりません。 xuzuning 兄弟の答えは比較的完璧であり、xuzuning に非常に感謝しています。
りー