需要删除php数组中的数字键

时间:2017-08-29 13:34:09

标签: php json

下面是我的php数组,

 tsql -H azureserver.database.windows.net -p 1433 -D SQLPRIDB -U myuser -P mypassword

下面是上面数组的php json编码结果,

Array
(
    [0] => Array
        (
            [requests] => 22
        )

    [1] => Array
        (
            [requests] => 44
        )
    [overview_chart_data] => Array
        (
            [response] => ok
        )
)

出于某种原因,我需要得到如下结果,

{"0":{"requests":22},"1":{"requests":44},"overview_chart_data":{"response":"ok"}},

是否有可能达到预期的结果..! Anyhelp赞赏......

3 个答案:

答案 0 :(得分:2)

您可以使用自定义脚本:

<?php
$a = [
    ['requests' => 22],
    ['requests' => 44],
    'overview_chart_data' => ['response' => 'ok']
];
$output = [];
foreach ($a as $k => $v)
    $output[] = (is_string($k) ? ('"' . $k . '":') : '') . json_encode($v);

echo '{' . implode(',', $output) . '}' . PHP_EOL;

但它不是有效的JSON文档。

答案 1 :(得分:1)

Here is a good S.O. post通过这样做来帮助您获得这些结果...

$testArray = array(
    (object)array("name" => "John", "hobby" => "hiking"),
    (object)array("name" => "Jane", "hobby" => "dancing")
);

echo "Person 1 Name: ".$testArray[0]->name;
echo "Person 2 Hobby: ".$testArray[1]->hobby;

这将为您提供在没有数字索引的情况下在数组中拥有对象的期望结果......但是更恰当的方式是follow this post。这样,您就可以使用正确的JSON解码过程来捕获执行这种简单语法的能力$obj = json_decode($data);

答案 2 :(得分:0)

尝试使用$ array = array_values($ array);这样就可以轻松实现您所要的