我有一个如下数组:
Array
(
[sku_code_part] => Array
(
[1] => Array
(
[id] => 1
[name] => Category
[sku_code_type] => 1
)
[2] => Array
(
[id] => 2
[name] => -
[sku_code_type] => 4
)
[3] => Array
(
[id] => 2
[name] => -
[sku_code_type] => 7
)
)
我尝试使用search_array()查找sku_code_type = 7并返回其父键3;但是,search_array只返回值的键而不是它的父数组的索引。
对此最好的选择是什么?
我正在考虑在数组中循环,但我不确定从性能的角度来看这是否会过度。
答案 0 :(得分:0)
执行此操作的一种方法是使用array_filter,然后使用结果中的array_keys将所有匹配的键重新放回数组中。
$result = array_filter($this->request->post['sku_code_part'], function($value, $key){
return $value["sku_code_type"] === 7;
}, ARRAY_FILTER_USE_BOTH);
print_r(array_keys($result));
或者根据建议使用带有$key
和$value
foreach ($this->request->post['sku_code_part'] as $key => $value) {
if ($value["sku_code_type"] === 7) {
echo "sku_code_type: 7, parent key: $key\n";
}
}