【发布时间】:2019-01-26 03:50:00
【问题描述】:
我想避免在我的实际代码中使用嵌套的 foreach,所以我正在考虑使用一个名为 array_walk 的数组函数 (如果我错了,请纠正我) 认为它将替换我的代码foreach。
如果它们中的一个具有相同的描述,我想比较两个整个数组,但问题是 array_walk 只比较第一个键/索引而不通过第二个索引来检查。还有其他方法吗?我只是想优化我的代码
顺便说一句,这段代码同时返回找到
<?php $array = array (
'1' => array(
'count' => '1',
'id' => 1,
'description' => 'Bag',
),
'2' => array(
'count' => '1',
'id' => 2,
'description' => 'Pencil',
), );
$bin = array (
'1' => array(
'count' => '1',
'id' => 2,
'description' => 'Bag',
),
'2' => array(
'count' => '1',
'id' => 2,
'description' => 'Pencil',
), );
$b = array_map(function($array, $bin) {
if ($array['description'] == $bin['description']){
$count = "found";
}else{
$count = "not found";
}
return array("status" => $count, "cart_array" => $array['description'], "bin"=>$bin['description']); }, $array, $bin);
var_dump($b);
?>
但是这个,第一个数组没有返回找到,它应该返回 发现是因为 $bin 数组中有 pencil 和 bag 更新了代码
<?php
$array = array (
'1' => array(
'count' => '1',
'id' => 1,
'description' => 'Bag',
),
'2' => array(
'count' => '1',
'id' => 2,
'description' => 'Pencil',
),
);
$bin = array (
'1' => array(
'count' => '1',
'id' => 2,
'description' => 'Pencil',
),
'2' => array(
'count' => '1',
'id' => 2,
'description' => 'Bag',
),
);
$b = array_map(function($array, $bin)
{
if ($array['description'] == $bin['description']){
$count = "found";
}else{
$count = "not found";
}
return array("status" => $count, "cart_array" => $array['description'], "bin"=>$bin['description']);
}, $array, $bin);
var_dump($b);
?>
【问题讨论】:
标签: php arrays function foreach