首页 > 解决方案 > 根据数组输出创建数组

问题描述

我正在尝试创建一个数组但没有运气。

当我转储我的数组时,我从结果中得到,看起来不错。我需要为下一次处理创建一个新数组。

array(1) { [0]=> array(3) { 
          ["name"]=> string(37) "America , United States , City" 
          ["link"]=> string(48) "https://www.test.com" 
          ["icon"]=> string(50) "  " 
                          } 
         }

基于上面的数组我需要创建数组

[0]
  ["name"]=>"America",
  [link]=>"https://www.test.com",
  ["icon"]=> string(50) "  "
[1]
  ["name"]=>"United States",
  [link]=>"https://www.test.com",
  ["icon"]=> string(50) "  "
[2]
  ["name"]=>"City",
  [link]=>"https://www.test.com",
  ["icon"]=> string(50) "  "

基本上,在分隔符之后",",它定义了数组将有多少个索引。在这种情况下,我们有 3 个,但例如,我们只能有["name"]=>"America",它将只有 1 个索引。

感谢任何形式的帮助。

标签: phparrays

解决方案


您可以展开第一个索引,然后执行循环以创建结果数组:

$names = explode(",",$data[0]['name']);    // <-- all names in an array

$res = [];
foreach($names as $name){
    $tmp = [
        "name" => trim($name),
        "link" => $data[0]['link'],
        "icon" => $data[0]['icon'],       
    ];
    $res[] = $tmp;
}

print_r($res);

演示


推荐阅读