Php 创建多个数组并将其与变量关联,无需字符串转换
我一直在四处寻找,但找不到解决我问题的办法。 在将数组与变量关联时,数组似乎正在转换为字符串 我的问题是: 如何在foreach循环中创建“小”数组,而不将生成的数组转换为字符串。那么,如何将这些新创建的数组注入到另一个“大”数组中,以获得如下结果: 预期$big可变输出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
[["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
)
)
非常感谢您,它的效果非常好!设置阵列的有趣方式,感谢您花时间回答我的问题。