【问题标题】:php array merge and convert to jsonphp数组合并并转换为json
【发布时间】:2013-05-02 08:19:30
【问题描述】:

我有两个数组(如下)。是否可以将它们转换为json字符串?

Array
        (
            [0] => size
            [1] => color
        )
Array
        (
            [0] => L
            [1] => Black
        )

输出结构应该是:

[
   {"name":"size","value":"L"},
   {"name":"color","value":"Black"}
]

谢谢!

【问题讨论】:

  • 呜?你搜索过json_encode()吗?
  • 将您的任务拆分为 2 个更简单的任务:1:将 2 个数组组合成一个具有适当结构的数组 2. 生成 json。这就是我们每天解决问题的方式。
  • 数组组合返回我这个数组([大小] => L [颜色] => 黑色)

标签: php arrays json array-merge


【解决方案1】:

当然:

$array1 = array('size', 'color');
$array2 = array('L', 'Black');

$jsonArray = array();
foreach (array_combine( $array1, $array2 ) as $name => $value) {
    $jsonArray[] = array('name' => $name, 'value' => $value);
}

echo $json = json_encode($jsonArray);

这给了你

[{"name":"size","value":"L"},{"name":"color","value":"Black"}]

【讨论】:

  • $jsonArray = array(); foreach (array_combine(array_keys($product["option"]["name"]), array_values($product["option"]["name"])) as $name => $value) { $jsonArray[] =数组('name' => $name, 'value' => $value); } $json = json_encode($jsonArray);
【解决方案2】:

这里应该可以工作:

$json = json_encode( array_combine( $array1, $array2 ) );

【讨论】:

  • 结果是:{"size":"L","color":"Black"}
  • 我需要:{"name":"size","value":"L"}, {"name":"color","value":"Black"}
【解决方案3】:

这样的事情应该可以按照你的意愿工作:

<?php
    $keys = array("size", "color");
    $values = array("L", "Black");

    $array = array();
    foreach ($keys as $i => $key) {
        $array[] = array(
            "name" => $key,
            "value" => $values[$i]
        );
    }

    $json = json_encode($array);

    var_dump($json);

    //string(62) "[{"name":"size","value":"L"},{"name":"color","value":"Black"}]"
?>

【讨论】:

    【解决方案4】:
        $array1 = array('size', 'color');
        $array2 = array('L', 'Black');
    
        $result = array_combine($array1 , $array2);
        $json = array();
        foreach($result as $key => $val){
         $json[] = array('name' => $key, 'value' => $value);
        }
        $json = json_encode($json);
    

    【讨论】:

    • :) 我不知道键和值(例如大小或颜色)
    【解决方案5】:

    我想你正在寻找这个:

    $array1 = array('size', 'color');
    $array2 = array('L', 'Black');
    for($i=0;$i<sizeof($array1);$i++)
       {
        $array3[]=array($array1[$i]=>$array2[$i]);
        }
    echo json_encode($array3);
    
    ?>
    

    输出:

    [{"size":"L"},{"color":"Black"}]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 2021-04-29
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      相关资源
      最近更新 更多