无需字符串转换即可创建多个数组并将其关联到变量
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
$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"]]
我四处寻找,但找不到解决问题的方法。 似乎我的数组在将它们与变量相关联时被转换为字符串。
我的问题是: 如何在 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
$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"]]