【发布时间】:2022-06-10 17:05:40
【问题描述】:
我有一个数组,我想按具有特定 ID 的数组分组。 例如 $newArr =
Array
(
[0] => Array
(
[0] => palanpur
[city] => palanpur
[1] => category_1
[cat_name] => category_1
[2] => 10000024
[id] => 10000024
[3] => 0
[search_type] => 0
)
[1] => Array
(
[0] => palanpur
[city] => palanpur
[1] => category_2
[cat_name] => category_2
[2] => 10000086
[id] => 10000086
[3] => 2
[search_type] => 2
)
[2] => Array
(
[0] => pattukottai
[city] => pattukottai
[1] => category_1
[cat_name] => category_1
[2] => 10000024
[id] => 10000024
[3] => 0
[search_type] => 0
)
[3] => Array
(
[0] => pattukottai
[city] => pattukottai
[1] => category_2
[cat_name] => category_2
[2] => 10000086
[id] => 10000086
[3] => 2
[search_type] => 2
)
[4] => Array
(
[0] => puttur
[city] => puttur
[1] => category_1
[cat_name] => category_1
[2] => 10000024
[id] => 10000024
[3] => 0
[search_type] => 0
)
[5] => Array
(
[0] => puttur
[city] => puttur
[1] => category_2
[cat_name] => category_2
[2] => 10000086
[id] => 10000086
[3] => 2
[search_type] => 2
)
[6] => Array
(
[0] => category_3
[cat_name] => category_3
[1] => 10000059
[id] => 10000059
[2] => 0
[search_type] => 0
)
[7] => Array
(
[0] => category_4
[cat_name] => category_4
[1] => 10000060
[id] => 10000060
[2] => 0
[search_type] => 0
)
)
得到上面的数组,我想要这样的结果:(id 明智和该 id 内的所有城市明智):
Array
(
[10000024] => Array
(
[id] => 10000024
[cat_name] => category_1
[field] => search_type
[palanpur] => 0
[pattukottai] => 0
[puttur] => 0
)
[10000086] => Array
(
[id] => 10000086
[cat_name] => category_2
[field] => search_type
[palanpur] => 2
[pattukottai] => 2
[puttur] => 2
)
[10000059] => Array
(
[id] => 10000059
[cat_name] => category_3
[field] => search_type
[palanpur] => 0
[pattukottai] => 0
[puttur] => 0
[universal] => 0
)
[10000060] => Array
(
[id] => 10000060
[cat_name] => category_4
[field] => search_type
[palanpur] => 0
[pattukottai] => 0
[puttur] => 0
[universal] => 0
)
)
为此,我试图通过 $result 中的 id 获取数据,但没有得到正确的结果。 第一个数组循环以获取我想要的新数组: $fields = //用户输入;
foreach($newArr as $k1 => $val2){
$newArray['id'] = $val2['id'];
$newArray['cat_name'] = $val2['cat_name'];
$newArray['field'] = $fields;
if (array_key_exists('city', $val2)){
$city1 = $val2['city'];
}
else {
$city1 = "universal";
}
$newArray[$city1] = $val2[$fields];
$newArray1[] = $newArray;
}
在 $newArray1 中,我得到了这样的附加数据:错误的输出:
Array
(
[0] => Array
(
[id] => 10000024
[cat_name] => category_1
[field] => search_type
[palanpur] => 0
)
[1] => Array
(
[id] => 10000086
[cat_name] => category_2
[field] => search_type
[palanpur] => 2
)
[2] => Array
(
[id] => 10000024
[cat_name] => category_1
[field] => search_type
[palanpur] => 2
[pattukottai] => 0
)
[3] => Array
(
[id] => 10000086
[cat_name] => category_2
[field] => search_type
[palanpur] => 2
[pattukottai] => 2
)
[4] => Array
(
[id] => 10000024
[cat_name] => category_1
[field] => search_type
[palanpur] => 2
[pattukottai] => 2
[puttur] => 0
)
[5] => Array
(
[id] => 10000086
[cat_name] => category_2
[field] => search_type
[palanpur] => 2
[pattukottai] => 2
[puttur] => 2
)
[6] => Array
(
[id] => 10000059
[cat_name] => category_3
[field] => search_type
[palanpur] => 2
[pattukottai] => 2
[puttur] => 2
[universal] => 0
)
[7] => Array
(
[id] => 10000060
[cat_name] => category_4
[field] => search_type
[palanpur] => 2
[pattukottai] => 2
[puttur] => 2
[universal] => 0
)
)
请帮助获得预期的输出。
【问题讨论】: