内爆 php 文件中的 json 数组
Imploding json array in php file
我想弄清楚如何在 php 文件中内爆来自 axios 调用的 json 数组。我目前有这个功能,我可以在转储数组和尝试转储内爆版本之间切换,但无法说明它是 foreach 的无效参数。
PHP 文件:
public function getResults(array $num = []){
dd($num);
dd(implode(", ", array_map(function($obj) { foreach ($obj as $p => $v) { return $p;} }, $num)));
}
dd($num) 调用在我的网络控制台中显示:
array:2 [
0 => "{"number":"115"}"
1 => "{"number":"135"}"
]
我怎样才能把它内爆成 115,135
的样子?
您应该使用 php 的内置函数 json_decode($data) 来解码 json。
您不会以您显示的格式获得它,而是默认情况下作为 stdClass。
如果您向 json_decode 提供第二个参数(真或假),您将得到它作为关联数组 og 您会更喜欢它。
我本来可以提供更好的用法示例,但编辑器无法在我的移动设备上进行协作。
<?php
function getResults(array $num = []): string
{
return implode(", ", array_map(fn ($obj) => json_decode($obj)->number , $num));
}
$json = ['{"number":"115"}','{"number":"135"}'];
echo getResults($json);
您的代码有问题
PHP 接收 JSON 作为字符串。所以你需要解码那个字符串,这样它对你的代码作为数据结构才有意义。
您有一组对象。 array_map
已经遍历数组 并在其范围内公开 字符串化对象 。所以我认为不需要额外的循环。
即使您将对象解码为关联数组,您也可以return $obj['number']
。 ($obj as $p => $v) { return $p;}
总是 return "number"
这是关键。
修复评论反馈
My code is throwing an error at => (I'm running PHP 7.1)
Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in...
https://www.php.net/manual/en/functions.arrow.php
Arrow functions were introduced in PHP 7.4 as a more concise syntax for anonymous functions.
return implode(", ", array_map(function ($obj) {
return json_decode($obj)->number;
}, $num));
我想弄清楚如何在 php 文件中内爆来自 axios 调用的 json 数组。我目前有这个功能,我可以在转储数组和尝试转储内爆版本之间切换,但无法说明它是 foreach 的无效参数。
PHP 文件:
public function getResults(array $num = []){
dd($num);
dd(implode(", ", array_map(function($obj) { foreach ($obj as $p => $v) { return $p;} }, $num)));
}
dd($num) 调用在我的网络控制台中显示:
array:2 [
0 => "{"number":"115"}"
1 => "{"number":"135"}"
]
我怎样才能把它内爆成 115,135
的样子?
您应该使用 php 的内置函数 json_decode($data) 来解码 json。
您不会以您显示的格式获得它,而是默认情况下作为 stdClass。
如果您向 json_decode 提供第二个参数(真或假),您将得到它作为关联数组 og 您会更喜欢它。
我本来可以提供更好的用法示例,但编辑器无法在我的移动设备上进行协作。
<?php
function getResults(array $num = []): string
{
return implode(", ", array_map(fn ($obj) => json_decode($obj)->number , $num));
}
$json = ['{"number":"115"}','{"number":"135"}'];
echo getResults($json);
您的代码有问题
PHP 接收 JSON 作为字符串。所以你需要解码那个字符串,这样它对你的代码作为数据结构才有意义。
您有一组对象。
array_map
已经遍历数组 并在其范围内公开 字符串化对象 。所以我认为不需要额外的循环。即使您将对象解码为关联数组,您也可以
return $obj['number']
。($obj as $p => $v) { return $p;}
总是 return"number"
这是关键。
修复评论反馈
My code is throwing an error at => (I'm running PHP 7.1)
Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in...
https://www.php.net/manual/en/functions.arrow.php
Arrow functions were introduced in PHP 7.4 as a more concise syntax for anonymous functions.
return implode(", ", array_map(function ($obj) {
return json_decode($obj)->number;
}, $num));