我有一个多部分数组,我想抓住一块并为它创建一个变量。以下是该数组的示例:
array(17) {
[0]=> array(2) {
[0]=> int(1325003844) [1]=> array(2) {
[0]=> int(31) [1]=> string(19) "ONBOARD TEMPERATURE" }
}
有32个不同的部分,其中我想要的值(如上面引号中的文字)可以在$ foo [x] [1]找到,x是0-31的值。所以我想知道我是否可以使用foreach或者创建一个循环,它将遍历变量的每次迭代并拉动该文本并将其添加到变量中。
所以我现有的代码是:
if(isset($result[1][10])) { // If index 10 of $result exists
$json_a = $result[1][10];
var_dump ($json_a);
要在单个变量中获取我想要的值,我需要立即将$ foo_01分配给$ json_a [0] [1],然后执行32次。 ($ json_a [1] [1],$ json_a [2] [1],$ json_a [3] [1]等等。我宁愿只有一个声明,一下子将它们全部分配。
如果您需要其他信息,请与我们联系。再次感谢!
答案 0 :(得分:3)
当然可以。
//Initialize an array variable to hold the names
$names= array();
//Creates an array of 32 strings (the names)
foreach ($items as $item){
$names[]=$item[1];
}
//If you want to display all of the name at once, you can easily
//Implode the array to echo all of the items with a linebreak in between
echo implode('<br />', $names);
//or you can cycle through the results and do something for each name
//although this can be done in the original loop.
foreach ($names as $name){
echo $name.'<br />';
}
在旁注中,您展示的阵列架构对我来说似乎有点奇怪。对于你想要做的事情一点都不了解,你认为这样的格式会更好吗?
array(31) {
[0]=> array(2) {
[id]=> int(1325003844),
[name]=> "ONBOARD TEMPERATURE"
},
[1]=> array(2) {
[id]=> int(1325003845),
[name]=> "NAME 2"
},
etc...
}
这样你已经完成了数组,准备好循环了吗?
<强>更新强>
foreach($results as $result){
if(isset($result[1][10])) { // If index 10 of $result exists
$foo[] = $result[1][10];
}
}
//Then you can access each one when needed
echo $foo[1];
答案 1 :(得分:0)
如果连续使用两个'$',PHP实际上会使用变量的值来创建该名称的新变量。例如:
$var1 = 'variable2'
$$var1 = 'hello';
echo $var1;
echo $variable2;
将输出:
variable2
hello
从上面的例子来看,你的命名约定似乎不支持(在“ONBOARD TEMPERATURE”中有一个空格)所以,你最好使用带有关联id键的数组。例如:
$values[$foo[x][1]] = $foo[x][0];
会为您提供输出$values['ONBOARD TEMPERATURE']
的{{1}}变量。