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++;
        }
    }
}