duanqun9740 2014-11-06 16:52
浏览 175
已采纳

array_push()期望参数1是使用键的array_push数组

I am trying to loop a json object and push selected values into array using keys.

$json = ' { "from": 1, "to": 2, "total": 2, "currentPage": 1, "totalPages": 1, "queryTime": "0.004", "totalTime": "0.020", "partial": false, "canonicalUrl": "/v1/products(offers.type=deal_of_the_day)?format=json&apiKey=946n9vuhdkgeyz2qx2dpxd54","products": [ { "sku": 5998225, "productId": 1219180376135, "name": "LG - 1.1 Cu. Ft. Mid-Size Microwave - Black", "source": "bestbuy", "type": "HardGood", "startDate": "2014-07-06","new": false, "active": true, "lowPriceGuarantee": true, "activeUpdateDate": "2014-11-03T19:43:46", "regularPrice": 124.99, "salePrice": 99.99, "onSale": true},{ "sku": 2634897, "productId": 1218343205770, "name": "Rocketfish In-Wall HDMI Cable", "source": "bestbuy", "type": "HardGood", "startDate": "2011-08-14", "new": false, "active": true,"lowPriceGuarantee": false, "activeUpdateDate": "2014-11-03T18:03:02", "regularPrice": 29.99, "salePrice": 24.99, "onSale": true } ] }';

$json_output = json_decode($json);
$pBB = array();
foreach($json_output->products as $obj){
    array_push($pBB['title']," {$obj->name}" );
    array_push($pBB['type']," {$obj->type}" );
    //array_push($pBB," {$obj->name}" );  without key works fine
}
echo  json_encode($pBB);

and below is the error i am getting

<br />
<b>Warning</b>:  array_push() expects parameter 1 to be array, null given on line <b>6</b><br />
<br />
<b>Warning</b>:  array_push() expects parameter 1 to be array, null given on line <b>6</b><br />
{"title":null}

If i push the values without keys it works and i get below output

[" LG - 1.1 Cu. Ft. Mid-Size Microwave - Black"," Rocketfish In-Wall HDMI Cable"]

Any thoughts , Thanks in advance!

  • 写回答

1条回答 默认 最新

  • dry9192 2014-11-06 16:53
    关注

    $pBB['title'] is null because you haven't defined it yet.

    Change

    $pBB = array();
    

    to

    $pBB = array("title" => array(), "type" => array());
    

    Update:

    $pBB = array();
    foreach($json_output->products as $obj){
        $pBB[] = array(
            "title" => $obj->name,
            "type" => $obj->type
        );
    }
    echo json_encode($pBB);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式