如何解决如何在Laravel中使用方括号而不是大括号打印数组?
我的laravel控制器中有这段代码,它打印出如下数组:items是一个集合。
$i = [];
foreach($items as $item) {
$i['grid'][$item->color]['color'] = $item->color;
$item_list['grid'][$item->color]['size_grid'][$item->size_no] = [
'size_no' => $item->size_no,'size_description' => $item->size_desc,'on_hand' => $item->on_hand,];
}
输出:
"grid": {
"VELBL": {
"color": "VELBL","size_grid": {
"3": {
"size_no": 3,"size_description": "MEDIUM","on_hand": "0"
},"5": {
"size_no": 5,"size_description": "X LARGE","4": {
"size_no": 4,"size_description": "LARGE","1": {
"size_no": 1,"size_description": "X SMALL","2": {
"size_no": 2,"size_description": "SMALL","on_hand": "0"
}
}
},"BLUAS": {
"color": "BLUAS","MHGR": {
"color": "MHGR","size_grid": {
"1": {
"size_no": 1,"3": {
"size_no": 3,"on_hand": "0"
}
}
}
}
这将使用大括号打印结果,但是我需要使用方括号将其打印出来。我该如何实现?如果更改代码,则不会打印所有必要的数据,如何打印带有方括号的同一组数据,如下所示:
预期输出:
"grid": [
"VELBL": {
"color": "VELBL","size_grid": [
"3": {
"size_no": 3,"on_hand": "0"
}
]
},"size_grid": [
"1": {
"size_no": 1,"on_hand": "0"
}
]
}
]
请有人帮助我,这是该技术的新手。预先感谢。
更新: 通过添加此行代码,现在这将打印带有方括号的网格数组,但是其中的数组size_grid而不是方括号,我该如何也将带有方括号的size_grid数组打印出来?
$item_list['grid'] = array_values($item_list['grid']);
输出:
"grid": [
{
"color": "VELBL",{
"color": "BLUAS",{
"color": "MHGR","on_hand": "0"
}
}
}
]
解决方法
要在网格中获得方括号中的结果,简单的解决方案应如下所示:
// your existing code
$i = [];
foreach($items as $item) {
$i['grid'][$item->color]['color'] = $item->color;
$item_list['grid'][$item->color]['size_grid'][$item->size_no] = [
'size_no' => $item->size_no,'size_description' => $item->size_desc,'on_hand' => $item->on_hand,];
}
// https://www.php.net/array_values
$item_list['grid'] = array_values($item_list['grid']);
更新:如果您还希望size_grid也是数字,则可以执行以下操作:
// your existing code
foreach($items as $item) {
...
// this line is updated,removal of "$item->size_no"
$item_list['grid'][$item->color]['size_grid'][] = [
'size_no' => $item->size_no,];
}
// https://www.php.net/array_values
$item_list['grid'] = array_values($item_list['grid']);
OR
...
// https://www.php.net/array_values
$item_list['grid'] = array_values($item_list['grid']);
$item_list['grid'] = array_map(
function ($item) {
$item['size_grid'] = array_values($item['size_grid']);
return $item;
},$item_list['grid']
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。