如何获取从 laravel foreach 返回的数组而不是 json 数组?

How can I get arrays returned from laravel foreach instead of a json array?

我正在尝试根据输入值使用 laravel foreach return 值数组。 这是我的预期输出

    [
[
    "number": 2567046807891,
    "message": "THis is a test",
    "sender": "Oasis Agrib"
],
[
    "number": 256782248927,
    "message": "THis is a test",
    "sender": "Oasis Agrib"
]

]

但我得到的是这个

[
{
"number": 2567046807891,
"message": "THis is a test",
"sender": "Oasis Agrib"
},
{
"number": 256782248927,
"message": "THis is a test",
"sender": "Oasis Agrib"
}
]

这是我试过的

$batch = array();
                foreach($data as $v){
                    $phone_number = $v['phonenumber'];
                    $batch[] = array('number' => $phone_number,'message' => $message, 'sender' => $sender);
                }
                return $batch;

如何才能最好地解决这种情况

带花括号的预期结果是正确的。数组(也称为列表)[] 包含元素并且不能有 properties/keys:

[
    [], // another array/list
    {}, //object
    "", //string
]

因此,为了使用 key/value 对,您必须使用一个对象:

{
    "number": 256782248927,
    "message": "THis is a test",
    "sender": "Oasis Agrib"
}

将多个对象合并到一个列表中,您将得到您已发布的结果:

[
    {
        "number": 2567046807891,
        "message": "THis is a test",
        "sender": "Oasis Agrib"
    },
    {
        "number": 256782248927,
        "message": "THis is a test",
        "sender": "Oasis Agrib"
    }
]

请注意,外部 API 不会处理您的 'expected' 结果,因为语法无效,它应该 return 一个错误或丢弃无效 JSON。

如果要使用JSON结构作为PHP数组,可以使用函数json_decode()并将第二个标志设置为true

$json_string = '[
    {
        "number": 2567046807891,
        "message": "THis is a test",
        "sender": "Oasis Agrib"
    },
    {
        "number": 256782248927,
        "message": "THis is a test",
        "sender": "Oasis Agrib"
    }
]' ;  
$array = json_decode($json_string, true);

您现在可以将 $array 用作经典的 PHP 关联数组。