Php 从值创建数组键。我已经创建了下面的数组定义。我已经区分了实际结果和预期结果
实际阵列Php 从值创建数组键。我已经创建了下面的数组定义。我已经区分了实际结果和预期结果,php,arrays,foreach,Php,Arrays,Foreach,实际阵列 Array ( [0] => Array ( [sub_id] => 3 [sub_name] => tttt [master_id] => 3 ) [1] => Array ( [sub_id] => 4 [sub_name] => yyyy
Array
(
[0] => Array
(
[sub_id] => 3
[sub_name] => tttt
[master_id] => 3
)
[1] => Array
(
[sub_id] => 4
[sub_name] => yyyy
[master_id] => 3
)
[2] => Array
(
[sub_id] => 5
[sub_name] => kkkk
[master_id] => 4
)
)
预期结果
Array
(
[3] => Array(
[0] => Array
(
[sub_id] => 3
[sub_name] => tttt
[master_id] => 3
)
[1] => Array
(
[sub_id] => 4
[sub_name] => yyyy
[master_id] => 3
)
)
[4] => Array(
[0] => Array
(
[sub_id] => 5
[sub_name] => kkkk
[master_id] => 4
)
)
)
您可以创建一个新数组,将master id的值设置为索引,并将该值放入其中
$data = array();
foreach($array as $key=>$value){
$data[$value['master_id']][] = $value;
}
请发布您的一些代码,然后只有我们可以帮助您。这个问题似乎不包括任何试图解决这个问题。请编辑问题以显示您尝试了什么,并显示您遇到的具体障碍。有关更多信息,请参阅。实际数组是我的结果。在实际阵列中,主id是相同的,因此根据预期,我想创建具有主id密钥的阵列。请接受答案并为我们双方获得信誉点
$actualArray = array(array('sub_id' => 3, 'sub_name' => 'tttt', 'master_id' => 3),array('sub_id' => 4, 'sub_name' => 'yyyy', 'master_id' => 3),array('sub_id' => 5, 'sub_name' => 'kkkk', 'master_id' => 4));
$tempArray = array_unique(array_column($actualArray, 'master_id'));
$uniqueArray = array_intersect_key($actualArray, $tempArray);
foreach ($uniqueArray as $key => $masters) {
$count = 0;
foreach ($actualArray as $key1 => $actuals) {
if($masters['master_id'] == $actuals['master_id']){
$expectedArray[$key][$count] = $actuals;
$count++;
}
}
}