嗨我有这样的结构数组。我想比较循环这样的条件。
if(dataInto[0]>=MyDataTypeFromInput && dataOut[0]<=MyDataTypeFromInput && room[0]==MyIdRoom) {...}
而不是索引0,这必须在循环foreach中工作。因此,将index [0]与index [0] [1]与[1]等进行比较
这是怎么回事?
[
'dataInto' => [
0 => '2016-07-14 14:50'
1 => '2016-03-24 14:00'
2 => '2016-03-03 06:30'
]
'room' => [
0 => 13
1 => 14
2 => 14
]
'dataOut' => [
0 => '2016-07-14 18:10'
1 => '2016-03-24 17:20'
2 => '2016-03-03 09:50'
]
]
答案 0 :(得分:1)
只需根据主数组项之一的长度执行foreach
循环:
foreach( $array['dataInto'] as $key => $val )
{
if
(
$array['dataInto'][$key] >= MyDataTypeFromInput
&&
$array['dataOut'][$key] <= MyDataTypeFromInput
&&
$array['room'][$key] == MyIdRoom
)
{
...
}
}
答案 1 :(得分:1)
我不会在foreach循环中执行此操作,更合理的方法是使用for循环,因为所有索引都是数字。
for($i = 0; $i < count($arr['dataInto']); $i++){
if($arr['dataInto'][$i] >= MyDataTypeFromInput
&& $arr['dataOut'][$i] <= MyDataTypeFromInput
&& $arr['room'][$i] == MyIdRoom){
// etc..
}
}
但是,如果你想循环主数组,那么foreach循环就是有序的。
foreach($arr as $key => $value){
echo $key, ', '; // ouput: "dataInto, dataOut, room"
foreach($value as $subkey => $subvalue){
echo $subkey, ' -> ', $subvalue; // will first loop dataInto and display all 3 values with numeric keys 0, 1, 2.
}
}