Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建多个数组并将其与变量关联,无需字符串转换_Php_Arrays_String_Implicit Conversion - Fatal编程技术网

Php 创建多个数组并将其与变量关联,无需字符串转换

Php 创建多个数组并将其与变量关联,无需字符串转换,php,arrays,string,implicit-conversion,Php,Arrays,String,Implicit Conversion,我一直在四处寻找,但找不到解决我问题的办法。 在将数组与变量关联时,数组似乎正在转换为字符串 我的问题是: 如何在foreach循环中创建“小”数组,而不将生成的数组转换为字符串。那么,如何将这些新创建的数组注入到另一个“大”数组中,以获得如下结果: 预期$big可变输出 [["apple", 8, "leeloo"], ["chery", 0, "leeloo"],] [apple, 8, 'leeloo'],[banana, 0, 'leeloo'], 当前$big可变输出 [["app

我一直在四处寻找,但找不到解决我问题的办法。 在将数组与变量关联时,数组似乎正在转换为字符串

我的问题是: 如何在foreach循环中创建“小”数组,而不将生成的数组转换为字符串。那么,如何将这些新创建的数组注入到另一个“大”数组中,以获得如下结果:

预期$big可变输出

[["apple", 8, "leeloo"], ["chery", 0, "leeloo"],]
[apple, 8, 'leeloo'],[banana, 0, 'leeloo'],
当前$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"],]   

?>

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

当您将其强制转换为数组时,类型将是array,但只有一个条目,即组合的字符串。在该数组上运行内爆将返回字符串

我可能更容易将
$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
        )

)

非常感谢您,它的效果非常好!设置阵列的有趣方式,感谢您花时间回答我的问题。