foreach循环与数组?

时间:2017-07-14 17:56:37

标签: php arrays foreach

我的$overs数组的foreach循环出现问题。这是我的代码:

$overs[result] = array(0,1,2,3,4,5,6,7);
$overs[market] = array('H6','H7','H8','H9','H10','H11','H12','H13');

foreach ($overs as $row) {
    echo $row['result'].'<br/>';
    echo $row['market'].'<br/>';
}

我没有像......那样得到结果。

0
H6
例如,

表示第一项。我得到的只是一个空白页面。没有错误。谢谢你的帮助!

5 个答案:

答案 0 :(得分:1)

你的$ row变成了一个包含两个数组的数组。你无法这样做。

使用normal代替:

$overs['result'] = array(0,1,2,3,4,5,6,7);
$overs['market'] = array('H6','H7','H8','H9','H10','H11','H12','H13');

for($i=0; $i<count($overs["result"]);$i++) {
    echo $overs['result'][$i]."<br/>\n";
    echo $overs['market'][$i]."<br/>\n";
}

https://3v4l.org/kDObN

答案 1 :(得分:1)

不确定您究竟在寻找什么,但请尝试一下,看看这是否符合您的目的:

<ItemsControl
    Grid.Row="1"
    Grid.Column="1"
    ItemsSource="{Binding Wells}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid
                x:Name="m_WellGrid"
                Margin="5"
                wpf:GridHelpers.RowCount="{Binding RowCount}"
                wpf:GridHelpers.ColumnCount="{Binding ColumnCount}">
            </Grid>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style>
            <Setter
                Property="Grid.Row"
                Value="{Binding Path=WellRow}"/>
            <Setter
                Property="Grid.Column"
                Value="{Binding Path=WellCol}"/>
        </Style>
    </ItemsControl.ItemContainerStyle>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock
                Text="A"
                Margin="4"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

答案 2 :(得分:1)

而不是foreach考虑使用for循环

我假设每个中的数组大小相同:

<?php
//You were missing the "'" for your keys btw
$overs['result'] = array(0,1,2,3,4,5,6,7);
$overs['market'] = array('H6','H7','H8','H9','H10','H11','H12','H13');

 for($i=0; $i < count($overs['result']); $i++){
     echo $overs['result'][$i] . '<br>';
     echo $overs['market'][$i] . '<br>';
 }

答案 3 :(得分:0)

因为$row是您需要循环的两个数组。但是为了在你展示时一个接一个地获取它们,你可能需要循环一个并通过键访问另一个。显然,只有当数组长度相同且键具有相同时,这才能正常工作:

foreach ($overs['result'] as $key => $val) {
    echo $val.'<br/>';
    echo $overs['market'][$key].'<br/>';
}

答案 4 :(得分:0)

我假设你的前两行是$overs['result']$overs['market'], 这意味着它应该是:

$overs['result'] = array(0,1,2,3,4,5,6,7);
$overs['market'] = array('H6','H7','H8','H9','H10','H11','H12','H13');

如果是这样,您的整个foreach与以下内容相同:

echo $overs['result']['result'].'<br/>';
echo $overs['result']['market'].'<br/>';
echo $overs['market']['result'].'<br/>';
echo $overs['market']['market'].'<br/>';

echo的所有内容都不存在,这意味着你应该得到类似的错误:

Notice: Undefined index: result in xxx.php on line xxx
Notice: Undefined index: market in xxx.php on line xxx

你应该添加

error_reporting(E_ALL);

在脚本的开头。