无需字符串转换即可创建多个数组并将其关联到变量

create and associate multiple arrays to variable without string conversion

我四处寻找,但找不到解决问题的方法。 似乎我的数组在将它们与变量相关联时被转换为字符串。

我的问题是: 如何在 foreach 循环中创建 "small" 数组而不将生成的数组转换为字符串。那么我怎样才能将那些新创建的数组注入另一个 "big" 数组中以期望这样的结果:

预期$大变量输出

[["apple", 8, "leeloo"], ["chery", 0, "leeloo"],]

当前$大变量输出

[apple, 8, 'leeloo'],[banana, 0, 'leeloo'],

当前PHP代码

<?php

    $inputs = array(
        "apple" => 8,
        "banana" => 0
    );

    // transform inputs keys/values into arrays ("$small")
    // inject those arrays into a new array ("$big")
    $small = '';
    $big = '';
    foreach($inputs as $key => $value){
        $small .= "[$key, $value, 'leeloo'],";
    }
    $big = array($small);

    echo "small type: ", gettype($small); // string
    echo "small output: ", $small; // [apple, 8, 'leeloo'],[banana, 0, 'leeloo'],

    echo "big type: ", gettype($big); // array
    echo "big output: ", implode($big); // [apple, 8, 'leeloo'],[banana, 0, 'leeloo'],
    // expected output: [["apple", 8, "leeloo"], ["chery", 0, "leeloo"],]   

?>

最后,我的目标是让我的 $big 变量表现得像这样:

$big = [
    ["apple", 8, "leeloo"],
    ["banana", 0, "leeloo"],
];

在您的代码中,您正在创建一个字符串 [apple, 8, 'leeloo'],[banana, 0, 'leeloo'],,其结构类似于数组。

当您将其转换为数组时,类型将是数组,但有一个条目将是组装后的字符串。 运行 对该数组进行内爆会给你返回字符串。

我可能更容易将您的 $big 变量设置为空数组。

在循环中用您的值创建一个新数组并将该数组添加到 $big

$inputs = array(
    "apple" => 8,
    "banana" => 0
);
$big = [];
foreach($inputs as $key => $value){
    $big[] = [$key, $value, 'leeloo'];
}

print_r($big);

输出

Array
(
    [0] => Array
        (
            [0] => apple
            [1] => 8
            [2] => leeloo
        )

    [1] => Array
        (
            [0] => banana
            [1] => 0
            [2] => leeloo
        )

)

Php demo

    <?php
    $inputs = [
        "apple" => 8 ,
        "banana" => 0
    ];

    $big = []; // empty array

    foreach ($inputs as $name => $number) {
        $big[] = [$name,$number,'leeloo'];
    }

    $big = json_encode($big);
    echo $big;
    // expected output : [["apple",8,"leeloo"],["banana",0,"leeloo"]]