我有以下数组,我希望获得type
和(如果有任何设置)amount
值(默认数量应为1)。我该怎么做?
array(10) {
[0]=> array(1) { ["type"]=> string(3) "EMPTY" }
[1]=> array(1) { ["type"]=> string(7) "BEER" }
[2]=> array(2) { ["type"]=> string(8) "BEEF" ["amount"]=> int(3) }
[3]=> array(1) { ["type"]=> string(3) "WOOD" }
[4]=> array(1) { ["type"]=> string(3) "CHEESE" }
[5]=> array(1) { ["type"]=> string(3) "EMPTY" }
[6]=> array(1) { ["type"]=> string(3) "EMPTY" }
[7]=> array(1) { ["type"]=> string(3) "EMPTY" }
[8]=> array(1) { ["type"]=> string(3) "EMPTY" }
[9]=> array(1) { ["type"]=> string(3) "EMPTY" }
}
编辑:嗯,我已经用foreach尝试了它,就像我之前做的那样..但是因为这不再是JSON我死了
foreach($json as $key => $moreJson)
{
$json[$key] = json_decode($moreJson);
}
echo '<p> User data for Player is 1 ', $json['type'][3];
但是这给了我:
Warning: json_decode() expects parameter 1 to be string, array given in XX on line 19
答案 0 :(得分:1)
你可以这样做
$new_array = array();
foreach($array as $item){
if( !array_key_exists('amount',$item) ){
$item['amount'] = 1;
}
$new_array[] = $item;
}
在没有花括号的情况下甚至更好,因为我们只在if语句中执行一行代码。
$new_array = array();
foreach($array as $item){
if( !array_key_exists('amount',$item) )
$item['amount'] = 1;
$new_array[] = $item;
}
如果没有$ new_array和大括号,甚至会更好。你可以使用&amp;通过引用分配该数组值。
foreach($array as &$item)
if( !array_key_exists('amount',$item) )
$item['amount'] = 1;