我想按数字顺序回显一堆数组,我尝试使用WHILE方法,但缺乏如何组合字符串来调用变量并获取数组内部值的知识。
0 18 * * * cp /etc/passwd /etc/passwd_$(date -I)
输出应该是:
$ins1 = array (
"select" => array (
"1" => "1"
),
"note" => array (
"1" => "Message"
)
);
$ins2 = array (
"select" => array (
"1" => "2"
),
"note" => array (
"1" => "Sorry"
)
);
$count = 1;
while($count <= 2){
$ins = '$ins'.$count;
echo $ins["select"][$count] .' '. $ins["note"][$count].'<br>';
$count++;
}
答案 0 :(得分:6)
您要找的是“Variable variables”,您可以通过它动态设置变量名称;为了得到你想要的东西,你可以改变你的代码:
$count = 1;
while($count <= 2){
$ins = 'ins'.$count;
$var = $$ins; // now your $var is either $ins1 or $ins2 :)
echo $var["select"][1] .' '. $var["note"][1].'<br>';
$count++;
}
输出结果为:
1 Message
2 Sorry
答案 1 :(得分:1)
你应该把这两个变量结合起来,让生活更轻松:
$ins = [
[//$ins1
"select" => array ("1" => "1"),
"note" => array ("1" => "Message" )
],
[//$ins2
"select" => array ("1" => "2"),
"note" => array ("1" => "Sorry")
]
];
for ($i = 0; $i < count($ins); $i++)
{
echo $ins[$i]["select"][1]." ".$ins[$i]["note"][1]."<br/>";
}
关于变量的动态名称,请参阅其他答案..希望我帮助过你..干杯! ;)
答案 2 :(得分:0)
这将为您解决问题:
$ins1 = array (
"select" => array (
"1" => "1"
),
"note" => array (
"1" => "Message"
)
);
$ins2 = array (
"select" => array (
"1" => "2"
),
"note" => array (
"1" => "Sorry"
)
);
for($i=1; $i<1000; $i++) {
$arr_name = 'ins'.$i;
if(isset($$arr_name)) {
$str = '';
foreach ($$arr_name as $key => $value) {
$str .= $value[1].' ';
}
echo trim($str).'<br/>';
} else {
break;
}
}
注意:我已将1000作为最高可能值,您可以相应地更改。比如你的情况就是2.