Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中将数组推入数组中的数组_Php_Arrays_Json - Fatal编程技术网

如何在PHP中将数组推入数组中的数组

如何在PHP中将数组推入数组中的数组,php,arrays,json,Php,Arrays,Json,大家好,我有以下代码: $shops = array(); foreach($json as $var) { if (in_array($var['shop'], $shops)) {} else { array_push($shops,$var['shop']); array_push($shops->$var['shop'],array('revenue' => 0, 'numberofbooks' => 0));

大家好,我有以下代码:

$shops = array();
foreach($json as $var)
{
    if (in_array($var['shop'], $shops)) {}
    else
    {
        array_push($shops,$var['shop']);
        array_push($shops->$var['shop'],array('revenue' => 0, 'numberofbooks' => 0));
    }
}
我希望:

Shops
  => shop1
    => revenue
    => numberofbooks
  =>shop2
    => revenue
    => numberofbooks
但是插入第三个数组不起作用,有人能帮我吗?

试试这个:

$shops = array();

foreach($json as $var){
    if (!isset($shops[$var['shop']])){ // use ! as "not", and use isset()
        $shops[$var['shop']] = array('revenue' => 0, 'numberofbooks' => 0);
    }
}
PHP的
in_array()
检查数组中是否存在值,而不是是否存在键。

试试这个(未测试)


您使用的是对象子表示法而不是数组,即
obj->var
而不是
Arr[child]
$shop = array();
foreach($json as $var)
{
    if(!in_array($var['shop'], $shop)){
        $shops[$var['shop']] = array('revenue' => 0, 'numberofbooks' => 0);
    }
}