如何在php中获取多维混合数组?
我将此数组存储在变量中:-如何在php中获取多维混合数组?,php,arrays,multidimensional-array,associative-array,Php,Arrays,Multidimensional Array,Associative Array,我将此数组存储在变量中:- 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] => 1
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>";
}
}
这就是我所期待的:
1
34
2
55
2
55
55
100
3
60
100
500
如何使用
foreach()
获得所需的结果?尝试以下方法:排除@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/>";
}
}
更新问题更新。试试这个:不包括@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/>";
}
}
更新时问题已更新。问题在于
日期
字段被解释为一个层。跳过非数字层,如下所示:
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>";
}
}
foreach($tables作为$table)
{
foreach($index=>$tier的表格)
{
如果(!是数值($index))
继续;
echo$tier[0]。“
”;
echo$tier[1]。“
”;
echo$tier[2]。“
”;
echo$tier[3]。“
”;
}
}
下面是一个这样工作的例子:
php > $tables = array(0 => array('date' => '06/01/2016 - 06/30/2016', 0 => array(1, 34, 2, 55), 1 => array(2, 55, 55, 100), 2 => array(3, 60, 100, 500)));
php > foreach ($tables as $table)
php > {
php { foreach ($table as $index => $tier)
php { {
php { if (!is_numeric($index))
php { continue;
php {
php { echo $tier[0]."<br>";
php { echo $tier[1]."<br>";
php { echo $tier[2]."<br>";
php { echo $tier[3]."<br>";
php { }
php { }
1<br>34<br>2<br>55<br>2<br>55<br>55<br>100<br>3<br>60<br>100<br>500<br>
php >
php>$tables=array(0=>array('date'=>'06/01/2016-06/30/2016',0=>array(1,34,2,55),1=>array(2,55,55,100),2=>array(3,60,100,500));
php>foreach($tables作为$table)
php>{
php{foreach($index=>$tier的表)
php{{
php{if(!is_numeric($index))
php{继续;
php{
php{echo$tier[0]。“
”;
php{echo$tier[1]。“
”;
php{echo$tier[2]。“
”;
php{echo$tier[3]。“
”;
php{}
php{}
1
34
2
55
2
55
55
100
3
60
100
500
php>
问题在于日期
字段被解释为一个层。跳过以下非数字层:
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>";
}
}
foreach($tables作为$table)
{
foreach($index=>$tier的表格)
{
如果(!是数值($index))
继续;
echo$tier[0]。“
”;
echo$tier[1]。“
”;
echo$tier[2]。“
”;
echo$tier[3]。“
”;
}
}
下面是一个这样工作的例子:
php > $tables = array(0 => array('date' => '06/01/2016 - 06/30/2016', 0 => array(1, 34, 2, 55), 1 => array(2, 55, 55, 100), 2 => array(3, 60, 100, 500)));
php > foreach ($tables as $table)
php > {
php { foreach ($table as $index => $tier)
php { {
php { if (!is_numeric($index))
php { continue;
php {
php { echo $tier[0]."<br>";
php { echo $tier[1]."<br>";
php { echo $tier[2]."<br>";
php { echo $tier[3]."<br>";
php { }
php { }
1<br>34<br>2<br>55<br>2<br>55<br>55<br>100<br>3<br>60<br>100<br>500<br>
php >
php>$tables=array(0=>array('date'=>'06/01/2016-06/30/2016',0=>array(1,34,2,55),1=>array(2,55,55,100),2=>array(3,60,100,500));
php>foreach($tables作为$table)
php>{
php{foreach($index=>$tier的表)
php{{
php{if(!is_numeric($index))
php{继续;
php{
php{echo$tier[0]。“
”;
php{echo$tier[1]。“
”;
php{echo$tier[2]。“
”;
php{echo$tier[3]。“
”;
php{}
php{}
1
34
2
55
2
55
55
100
3
60
100
500
php>
foreach($tables作为$table)
{
foreach($key=>$tier的表)
{
如果($key!=“日期”)
{
echo$tier[0]。“
”;
echo$tier[1]。“
”;
echo$tier[2]。“
”;
echo$tier[3]。“
”;
}
}
}
您的代码非常接近。foreach($tables as$table)
{
foreach($key=>$tier的表)
{
如果($key!=“日期”)
{
echo$tier[0]。“
”;
echo$tier[1]。“
”;
echo$tier[2]。“
”;
echo$tier[3]。“
”;
}
}
}
您的代码非常接近。我假设您的数组只有0个索引,因此直接在此处调用该数组并传递数组键
日期
比较“日期”时使用!==
不要使用!=,它将无效,因为“日期”将转换为int0
,因此“日期”和0将相等
foreach($k=>$tier的表[0]{
如果($k!=‘日期’){
echo$tier[0]。“
”;
echo$tier[1]。“
”;
echo$tier[2]。“
”;
echo$tier[3]。“
”;
}
}
我假设您的数组只有0个索引,所以直接在这里调用该数组并传递数组键日期
比较“日期”时使用!==
不要使用!=,它将无效,因为“日期”将转换为int0
,因此“日期”和0将相等
foreach($k=>$tier的表[0]{
如果($k!=‘日期’){
echo$tier[0]。“
”;
echo$tier[1]。“
”;
echo$tier[2]。“
”;
echo$tier[3]。“
”;
}
}
更新@RivnatNasah答案
foreach ($tables as $table) {
foreach ($table as $key => $values){
if ($key !== 'date') {
foreach ($values as $value) {
echo $value . PHP_EOL;
}
}
}
}
更新@RivnatNasah答案
foreach ($tables as $table) {
foreach ($table as $key => $values){
if ($key !== 'date') {
foreach ($values as $value) {
echo $value . PHP_EOL;
}
}
}
}
你只需要在循环时排除
日期
键,不是吗?让我知道我的答案是否让一切都完美运行。请不要这样做。让人们接受答案是好的,但不要试图强迫人们接受你自己的答案……先生,我投了反对票,我不知道为什么。@RivnatNasah坦白地说,我也不知道(尽管就我个人而言,我会将其以不同的方式进行布局,并尽可能使其接近原作).你只需要在循环时排除日期
键,不是吗?让我知道我的答案是否使一切都完美。请不要这样做。让人们接受答案是好的,但不要试图强迫人们接受你自己的答案……先生,我投了反对票,我不知道为什么。@RivnatNasah坦白说,我也不知道(尽管就我个人而言,我会将其以不同的方式进行布局,并尽可能使其接近原作)。我投了反对票,因为对于OPs问题,这是错误的。@Webeng读了这个问题。读了其他答案。@Paul no。$table
是一个数组。@Webeng你的支票应该在第二个foreach循环中。@Webeng,我同意@Jon Stirling:$tables
的$key
是0,$table
是数组。我投了反对票,因为OPs问题,这是错误的。@Webeng阅读了问题。阅读了其他答案。@Paul没有。$table
是一个数组。@Webeng您的检查应该在第二个foreach循环内。@Webeng,我同意@Jon Stirling:$tables
的$key
是0,$table
是数组。您的代码不工作,它正在显示2 5555 100 3 60 100 500@SumitBhatia,使用如果($k!=='date')
您的代码不工作,它将显示2555100360100500@SumitBhatia,使用if($k!=='date')