这是我的阵列:
[60] => Array
(
[id] => 122
[leverancier_id] => 120
[naam] => 1PK-HP-ELP-KKH-****
[extra] => array
(
[sku] => 1PK-HP-ELP-KKH-145
)
)
[61] => Array
(
[id] => 123
[leverancier_id] => 98
[naam] => 2PK-HP-ELP-KKH-****
[extra] => Array
(
[sku] => 2PK-HP-ELP-KKH-145
)
)
如果sku已经存在,我必须在数组" extra"中搜索。 如果sku已经存在,它应该返回" id"。
我现在有这个功能,但它不允许我在数组中搜索"额外"。
function hasName($array, $name) {
foreach ($array as $item) {
if($item["naam"] == $name) return $item['id'];
}
return false;
}
我无法以任何方式实现这一目标,我希望有人可以帮助我。
答案 0 :(得分:0)
就这样做
foreach($array as $row){
if(isset($row['extra'])) $id[] = $row['id'];
}
数组$ id包含extra
存在的ID。
答案 1 :(得分:0)
<强>代码:强>
<?php
$sku = '2PK-HP-ELP-KKH-145';
$arr = Array(
0=>Array
(
'id' => 122,
'leverancier_id' => 120,
'weergavenaam' => '1PK-HP-ELP-KKH-****',
'extra' => array
(
'sku' => '1PK-HP-ELP-KKH-145'
)
),
1=>Array
(
'id' => 123,
'leverancier_id' => 98,
'weergavenaam' => '2PK-HP-ELP-KKH-****',
'extra' => array
(
'sku' => '2PK-HP-ELP-KKH-145'
)
));
foreach($arr as $row)
{
if($row['extra']['sku'] == $sku)
{
echo "Id = ".$row['id'];
}
}
<强>输出:强>
Id = 123
现场演示:Click Here
答案 2 :(得分:0)
我如何理解你的问题是你想要返回id,如果有一个sku(在额外的数组中),否则返回false。也许这会让你朝着正确的方向前进:
function hasName($array)
{
foreach ($array as $item) {
// if (!empty($item['extra']['sku']) may also work.
// is_array($item['extra'] may be a little too much in the following line.
if (array_key_exists('extra', $item) && is_array($item['extra']) && array_key_exists('sku', $item['extra'])) {
return $item['id'];
}
}
return false;
}