原始數組類似
$arr = array( array( 'id' => '1', 'name' => 'a', 'project' => '1', ), array( 'id' => '2', 'name' => 'b', 'project' => '3', ), array( 'id' => '3', 'name' => 'c', 'project' => '2', ), array( 'id' => '4', 'name' => 'd', 'project' => '1', ), );
我想根據project的相同性組成多個數組,如下面結果
$arr1 = array( array( 'id' => '1', 'name' => 'a', 'project' => '1', ), array( 'id' => '4', 'name' => 'd', 'project' => '1', ), ); $arr2 = array( array( 'id' => '2', 'name' => 'b', 'project' => '3', ), ); $arr3 = array( array( 'id' => '3', 'name' => 'c', 'project' => '2', ), );
求協助了呀,我有個思路,想讓project順序排序,然後再迴圈判斷下一個val[project]是否與 上一個相同,不同就組成新數組。
但是想問問 還有其他效率的方法沒
回複討論(解決方案)
$arr = array( array( 'id' => '1', 'name' => 'a', 'project' => '1', ), array( 'id' => '2', 'name' => 'b', 'project' => '3', ), array( 'id' => '3', 'name' => 'c', 'project' => '2', ), array( 'id' => '4', 'name' => 'd', 'project' => '1', ), );foreach($arr as $v) $r['arr' . $v['project']][] = $v;extract($r);print_r($arr1);
Array( [0] => Array ( [id] => 1 [name] => a [project] => 1 ) [1] => Array ( [id] => 4 [name] => d [project] => 1 ))
其他自己驗證
extract()一般什麼時候用
謝謝了,第一次知道$r['arr' . $v['project']][] = $v; 還可以讓數組自己找的對應位置,其實這一句就到達我想要的結果了,我那種方法自己都覺得累
extract()之前看了下,大致就是把val直接給到$+key名的變數中