簡體   English   中英

如何在不使用循環的情況下向 PHP 中的多維添加新的鍵和值……?

[英]how to add new key and value to multidimensional in PHP without using the loops…?

Array ( [0] => Array (
            [date] => 01-06-2018 
            [nav] => 30.65100 ) 
        [1] => Array ( 
            [date] => 31-05-2018 
            [nav] => 30.84900 ) 
        [2] => Array ( 
            [date] => 30-05-2018 
            [nav] => 30.73200 ) 
        [3] => Array ( 
            [date] => 29-05-2018 
            [nav] => 30.81500 )

上面的代碼是Multi-array,我們在PHP中沒有使用任何循環的情況下,為其中的每個數組添加了一個通用id,如id_code = 0089。 任何人都可以幫助我,這是否可能......?

一個有效的解決方案是使用 array_map function 作為:

$keyValue = 'some value';

$data = array_map(function($d) use ($keyValue){
    return $d + ['keyName' => $keyValue];
}, $data);

如果您的意思是不手動循環遍歷數組,那么可以,可以使用array_walk

$array = [
0 => [
    "date" => "01-06-2018", 
    "nav" => "30.65100"], 
1 => [ 
    "date" => "01-06-2018", 
    "nav" => "30.65100"], 
2 => [ 
    "date" => "01-06-2018", 
    "nav" => "30.65100"], 
3 => [ 
    "date" =>"01-06-2018", 
    "nav" => "30.65100"]
    ];

array_walk($array, function(&$item1) {
    $item1['id_code'] = "0089";
});

print_r($array);

Output:

Array
(
    [0] => Array
        (
            [date] => 01-06-2018
            [nav] => 30.65100
            [id_code] => 0089
        )

    [1] => Array
        (
            [date] => 01-06-2018
            [nav] => 30.65100
            [id_code] => 0089
        )

    [2] => Array
        (
            [date] => 01-06-2018
            [nav] => 30.65100
            [id_code] => 0089
        )

    [3] => Array
        (
            [date] => 01-06-2018
            [nav] => 30.65100
            [id_code] => 0089
        )

)

演示https://3v4l.org/lCGIO

我認為這是您可以獲得的更接近的結果,但這可能不是您的預期結果。 據我所知,如果不使用循環,您需要的確切結果是無法完成的。

$t = array( 0 => array( 'date' => '01-06-2018', 'nav' => '30.65100' ), 1 => array( 'date' => '31-05-2018', 'nav' => '30.84900' ), 2 => array( 'date' => '30-05-2018', 'nav' => '30.73200' ), 3 => array( 'date' => '29-05-2018', 'nav' => '30.81500' ));
$tt = array( 0 => array( 'id' => '648'), 1 => array( 'id' => '332'), 2 => array( 'id' => '889'), 3 => array( 'id' => '285') );
$final = array_map(null, $t, $tt);
print_r($final);

output 看起來像

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [date] => 01-06-2018
                    [nav] => 30.65100
                )

            [1] => Array
                (
                    [id] => 648
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [date] => 31-05-2018
                    [nav] => 30.84900
                )

            [1] => Array
                (
                    [id] => 332
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [date] => 30-05-2018
                    [nav] => 30.73200
                )

            [1] => Array
                (
                    [id] => 889
                )

        )

    [3] => Array
        (
            [0] => Array
                (
                    [date] => 29-05-2018
                    [nav] => 30.81500
                )

            [1] => Array
                (
                    [id] => 285
                )

        )

)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM