我将这个数组存储在一个变量中: -
Array (
[0] => Array (
[date] => 06/01/2016 - 06/30/2016
[0] => Array ( [0] => 1 [1] => 34 [2] => 2 [3] => 55 )
[1] => Array ( [0] => 2 [1] => 55 [2] => 55 [3] => 100 )
[2] => Array ( [0] => 3 [1] => 60 [2] => 100 [3] => 500 )
)
)
这是我打印它的代码:
foreach($tables as $table)
{
foreach($table as $tier)
{
echo $tier[0]."<br>";
echo $tier[1]."<br>";
echo $tier[2]."<br>";
echo $tier[3]."<br>";
}
}
这就是它的印刷品:
0
6
/
0
1
34
2
55
2
55
55
100
3
60
100
500
这就是我所期待的:
1
34
2
55
2
55
55
100
3
60
100
500
如何使用foreach()
获得所需的结果?
答案 0 :(得分:2)
试试这个:不包括@Jon Stirling建议的日期。
foreach($tables as $table){
foreach($table as $k => $tier){
if($k !== 'date')
echo $tier[0]."<br/>".$tier[1]."<br/>".$tier[2]."<br/>".$tier[3]."<br/>";
}
}
新版本就在这里,在!==
条件中添加if
之后,前一个版本也运行良好。
$tables = array(
array (
'date' => "06/01/2016 - 06/30/2016",
array ( 1, 34, 2, 55 ),
array ( 2, 55, 55, 100 ),
array ( 3, 60, 100, 500 )
)
);
foreach($tables as $table){
foreach($table as $k => $tier){
if(!is_array($tier))
continue;
foreach($tier as $val)
echo $val."\n";
}
}
更新了问题更新。
答案 1 :(得分:2)
问题是df1
# V1 V2 V3 V4
#1 3 9 6 9
#2 3 3 4 2
#3 7 7 7 1
#4 5 8 7 5
#5 6 3 3 2
字段被解释为层。跳过这样的非数字层:
date
以下是此工作的一个示例:
foreach ($tables as $table)
{
foreach ($table as $index => $tier)
{
if (!is_numeric($index))
continue;
echo $tier[0]."<br>";
echo $tier[1]."<br>";
echo $tier[2]."<br>";
echo $tier[3]."<br>";
}
}
答案 2 :(得分:0)
我假设你的数组只有0个索引,所以在这里直接调用那个数组并传递数组键date
比较“日期”时使用!==
不要使用!= ,它将无效,因为“date”将转换为int
中相等0
所以在“date”和0
foreach ($table[0] as $k=>$tier) {
if($k !== 'date'){
echo $tier[0]."<br>";
echo $tier[1]."<br>";
echo $tier[2]."<br>";
echo $tier[3]."<br>";
}
}
答案 3 :(得分:0)
更新@RivnatNasah回答
foreach ($tables as $table) {
foreach ($table as $key => $values){
if ($key !== 'date') {
foreach ($values as $value) {
echo $value . PHP_EOL;
}
}
}
}
答案 4 :(得分:-1)
foreach($tables as $table)
{
foreach($table as $key => $tier)
{
if ($key !== 'date')
{
echo $tier[0]."<br>";
echo $tier[1]."<br>";
echo $tier[2]."<br>";
echo $tier[3]."<br>";
}
}
}
你真的很接近你的代码。