array_push(): 参数 #1 ($array) 必须是数组类型,字符串给定

array_push(): Argument #1 ($array) must be of type array, string given

这是我的代码,当我 运行 这个函数时,我得到了这个: array_push(): Argument #1 ($array) must be of type array, string given 我试图为 array

添加值
$data['status'] = 'success';
$data['msg'] = 'OK';
$aa = array();
if (!empty($countries)) {
    foreach ($countries as $row) {
        $b = $row['iso2'];
        $aa[$b] = array_push($row['name']);
    }
}
$data['result'] = $aa;

return setJSON($data);

这个必须要获得:

{
    "status": "success",
    "msg": "OK",
    "result": {
        /*"iso2": "name",*/
        "DE": "Germany"
    }
}

array_push 需要一个数组和一个要添加到它的值。然而,更常见的方式是:

$aa[$row['iso2']] = $row['name'];

也就是说,有一个内置函数,因此您不必循环执行:

$data['status'] = 'success';
$data['msg'] = 'OK';

if (!empty($countries)) {
    $data['result'] = array_column($countries, 'name', 'iso2');
}
return setJSON($data);