PHP数组,带有值的新维度

时间:2017-09-20 10:28:06

标签: php arrays

我一直试图做几个小时,但我没有任何具体的想法。我想实现如下所示的结果。该数组派生自json文件。

我有:

[0] => Array(
    [Id] => scr_1 
    [Size] => 1920, 1080
)
[1] => Array(
    [Id] => scr_2 
    [Size] => 1280, 1024
)

我的目标是:

[0] => Array(
    [Id] => scr_1
    [Size] => Array( 
        [Width] => 1920 
        [Height] => 1080
    )
)
[1] => Array(
    [Id] => scr_
    [Size] => Array( 
        [Width] => 1280
        [Height] => 1024
    )
)

我该怎么做? 提前谢谢!

4 个答案:

答案 0 :(得分:2)

您需要添加数组,而不是在Size

中提供字符串
$yourArray = array(
    array(
        "Id" => "scr_1",
        "Size" => array(
            "Width" => 1920,
            "Height" => 1080
        )
    ),
    array(
        "Id" => "scr_2",
        "Size" => array(
            "Width" => 1280,
            "Height" => 1024
        )
    )
);
$newArray = array();
foreach ($yourArray as $k => $res) {
    $newArray[$k] = array(
        "Id" => $res["Id"],
        "Size" => explode(",", $res["Size"])
    );
}

答案 1 :(得分:1)

试试此代码

<?php
    $myarray[0]["Id"] = "scr_1";
    $myarray[0]["Size"]= "1920, 1080";
    $myarray[1]["Id"] = "scr_2";
    $myarray[1]["Size"]= "1920, 1080";
    foreach($myarray as $key =>$value){
        list($width, $height) = explode(", ",$value["Size"]);
        $myarray[$key]['Size'] = array("Width"=>$width, "Height" =>$height);
    }
    echo "<pre>";print_r($myarray);
    ?>

答案 2 :(得分:1)

$array = array(array('Id' => 'scr_1', 'Size' => '1920, 1080'),array('Id' => 'scr_1', 'Size' => '1920, 1080'));
    foreach($array as $key => $val )
    {
        $size = explode(',',$val['Size']);
        $new['Width'] = $size[0];
        $new['height'] = $size[1];
        $array[$key]['Size'] = $new;
    }
    echo "<pre>";
    print_r($array);
    echo "</pre>";

检查此代码。

答案 3 :(得分:0)

试试这段代码:

<?php

$array = array(
    array(
        "Id" => "scr_1",
        "Size" => "1920, 1080"
    ),
    array(
        "Id" => "scr_2",
        "Size" => "1280, 1024"
    )
);

$newArray = array();

foreach ($array as $k => $v) {
    $size = explode(', ', $v['Size']);
    $newArray[$k]= array('Id' => $v['Id'],  'Size' => array('Width' => $size[0], 'Height' => $size[1]));
}   

print_r($newArray);