[英]Filter array where key value equals as string with PHP
您好我正在尝试重建一个键类别 = DESKTOPS 的数组。 这是我的数组的一个示例: $dummyData['data'][$counter] = array('item' => $A, 'ff' => $B, 'proc' => $C, 'mfgr' => $D, 'category' => $E, 'purchaseCost' => $F, 'qty' => $G);
我的数组看起来像这个例子:
<?php
$data =
array (
5 =>
array (
'item' => '600 G1',
'ff' => 'SFF',
'proc' => 'i5',
'mfgr' => 'HP',
'category' => 'DESKTOPS',
'purchaseCost' => '$56.00',
'qty' => '4',
),
6 =>
array (
'item' => '90W ADAPTER',
'ff' => '',
'proc' => '',
'mfgr' => 'DELL',
'category' => 'ACCESSORIES',
'purchaseCost' => '$10.00',
'qty' => '1',
),
),
);
?>
在 PHP 中,我如何在'category' => 'DESKTOPS'
上过滤这个数组,只在新数组中显示桌面?
这是我尝试过的:
foreach ($dummyData as $key => $desktops) {
foreach(desktops as $desktop) {
if($desktop[category] =="DESKTOPS"){
// add to new array
$DESKTOPS[] = array('item' => $desktop[item],'ff' => $desktop[ff],'proc' => $desktop[proc],'mfgr' => $desktop[mfgr],'category' => $desktop[category],'purchaseCost' => $desktop[purchaseCost],'qty' => $desktop[qty]);
}
}
}
但只返回这个空数组:
Array Dump:
<?php
$data =
array (
);
?>
使用array_filter()过滤你的数组:
<?php
$data = array (
5 =>
array (
'item' => '600 G1',
'ff' => 'SFF',
'proc' => 'i5',
'mfgr' => 'HP',
'category' => 'DESKTOPS',
'purchaseCost' => '$56.00',
'qty' => '4',
),
6 =>
array (
'item' => '90W ADAPTER',
'ff' => '',
'proc' => '',
'mfgr' => 'DELL',
'category' => 'ACCESSORIES',
'purchaseCost' => '$10.00',
'qty' => '1',
),
);
function desktopsOnly($var) {
return $var['category'] == "DESKTOPS";
}
$arrayDesktops = array_filter($data, "desktopsOnly");
print_r($arrayDesktops);
将打印出:
Array
(
[5] => Array
(
[item] => 600 G1
[ff] => SFF
[proc] => i5
[mfgr] => HP
[category] => DESKTOPS
[purchaseCost] => $56.00
[qty] => 4
)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.