Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php foreach-从第二个或第三个数组中获取特定值_Php_Arrays_Foreach - Fatal编程技术网

Php foreach-从第二个或第三个数组中获取特定值

Php foreach-从第二个或第三个数组中获取特定值,php,arrays,foreach,Php,Arrays,Foreach,大家好,谢谢你们帮助我。。。 我同时有1个数据库和3个查询。每个查询都选择不同的年份,并从该列中获取数据 这是我的密码 $items = array(); // while we still have rows from the db, display them while ($row = mysql_fetch_array($result1)) { $items[] = $row; } while ($row = mysql_fetch_array($result2)

大家好,谢谢你们帮助我。。。 我同时有1个数据库和3个查询。每个查询都选择不同的年份,并从该列中获取数据

这是我的密码

$items = array();

      // while we still have rows from the db, display them
while ($row = mysql_fetch_array($result1)) {

    $items[] = $row;
}

while ($row = mysql_fetch_array($result2)) {

    $items[] = $row;
}

while ($row = mysql_fetch_array($result3)) {

    $items[] = $row;
}


mysql_close($connect);

?>

<?php foreach($items as $key => $item) : ?>

    <?php print "I DONT KNOW WHAT TO DO"; ?>

<?php endforeach; ?>
$items=array();
//当我们仍然有来自数据库的行时,显示它们
而($row=mysql\u fetch\u数组($result1)){
$items[]=$row;
}
while($row=mysql\u fetch\u数组($result2)){
$items[]=$row;
}
while($row=mysql\u fetch\u数组($result3)){
$items[]=$row;
}
mysql_close($connect);
?>
当我打字时:

<?php echo print_r($keys); ?>

我可以看到我有一个0、1和2的数组。我希望从第一(1)或第二(2)个数组中获得特定的行

我正在努力想办法,但我就是不能

非常感谢大家

编辑:

完整代码:

    <?php
    include ('db.php'); // for db details
    include ('functions.php');

    $connect = @mysql_connect($host,$username,$password) or die('<p class="error">Unable to connect to the database server at this time.</p>');
    if (!$connect) {
        die('Could not connect: ' . mysql_error());
    }



    @mysql_select_db($database,$connect) or die('<p class="error">Unable to connect to the database at this time.</p>');

    $query1 = "SELECT * FROM godina2015 WHERE mjesec='8' AND godina='2015'";
    $query2 = "SELECT * FROM godina2015 WHERE mjesec='7' AND godina='2015'";
    $query3 = "SELECT * FROM godina2015 WHERE mjesec='6' AND godina='2015'";

    $result1 = @mysql_query("$query1") or die('<p class="error">There was an unexpected error grabbing news from the database.</p>');
    $result2 = @mysql_query("$query2") or die('<p class="error">There was an unexpected error grabbing news from the database.</p>');
    $result3 = @mysql_query("$query3") or die('<p class="error">There was an unexpected error grabbing news from the database.</p>');


    $items = array();

          // while we still have rows from the db, display them
    while ($row = mysql_fetch_array($result1)) {

        $items[] = $row;
    }

    while ($row = mysql_fetch_array($result2)) {

        $items[] = $row;
    }

    while ($row = mysql_fetch_array($result3)) {

        $items[] = $row;
    }


    mysql_close($connect);

    ?>

    <?php foreach($items as $key => $item) : ?>

        <?php print_r ($item); ?>

    <?php endforeach; ?>

在循环中执行变量转储($item)

您将在浏览器中看到阵列/对象的结构

查找包含所需数据的字段(它可能与数据库中的列同名)

您可以在循环中使用$item['field']来访问它。或$items[此处的数组编号(0,1,2)]['field']


我相信你说的行是指列。

在循环中做一个var_转储($item)

您将在浏览器中看到阵列/对象的结构

查找包含所需数据的字段(它可能与数据库中的列同名)

您可以在循环中使用$item['field']来访问它。或$items[此处的数组编号(0,1,2)]['field']


我相信你说的行是指列。

我的第一个答案。。。太激动了。 我知道你想做什么,因为有时我在使用代码“弄清楚”不同的(动态)查询响应如何相互关联时,也必须做同样的事情。我通常嵌套结果,这样我就有了一些可以逻辑解析的关系

while ($row = mysql_fetch_array($result1)) {
    $items[0][] = $row;
}

while ($row = mysql_fetch_array($result2)) {
    $items[1][] = $row;
}

while ($row = mysql_fetch_array($result3)) {
    $items[2][] = $row;
}
这将区分不同的记录集,这样您就可以以您想要的任何方式解析数组,甚至在需要时递归解析

(array)$newArray = parseArray($items);
从那里

function parseArray($inArray) {
    (array)$outArray = Array();

    foreach($inArray as $element) {
        if('some condition with $element') {        //maybe $element['date']=10?
            $outArray[] = parseArray($element);
        } else {
            $outArray[] = $element;
        }
    }
    return $outArray();
}

在不知道数据是什么样子的情况下很难回答(和测试),但可能有一些想法。我现在准备第一次投反对票。

我的第一个答案。。。太激动了。 我知道你想做什么,因为有时我在使用代码“弄清楚”不同的(动态)查询响应如何相互关联时,也必须做同样的事情。我通常嵌套结果,这样我就有了一些可以逻辑解析的关系

while ($row = mysql_fetch_array($result1)) {
    $items[0][] = $row;
}

while ($row = mysql_fetch_array($result2)) {
    $items[1][] = $row;
}

while ($row = mysql_fetch_array($result3)) {
    $items[2][] = $row;
}
这将区分不同的记录集,这样您就可以以您想要的任何方式解析数组,甚至在需要时递归解析

(array)$newArray = parseArray($items);
从那里

function parseArray($inArray) {
    (array)$outArray = Array();

    foreach($inArray as $element) {
        if('some condition with $element') {        //maybe $element['date']=10?
            $outArray[] = parseArray($element);
        } else {
            $outArray[] = $element;
        }
    }
    return $outArray();
}

在不知道数据是什么样子的情况下很难回答(和测试),但可能有一些想法。我现在准备好我的第一次否决票。

如果你做一个
打印($item)在foreach循环中?这可能有助于显示
var\u dump($items)
。您需要准确地显示/解释数据结构的外观。但是考虑到构建数组的方式,对于第一个查询结果,
$items[n+1]…$items[n]
$第二次查询的项[n+m]
等。@VincentG我得到所有数组的列表:[0]=>82[id]=>82[1]=>8[mjesec]=>8[2]=>2015。。。。因此,您可能希望首先向我们展示您正在运行的实际查询。谁知道也许你在做一些愚蠢的事情,如果你做一个
print\r($item)在foreach循环中?这可能有助于显示
var\u dump($items)
。您需要准确地显示/解释数据结构的外观。但是考虑到构建数组的方式,对于第一个查询结果,
$items[n+1]…$items[n]
$第二次查询的项[n+m]
等。@VincentG我得到所有数组的列表:[0]=>82[id]=>82[1]=>8[mjesec]=>8[2]=>2015。。。。因此,您可能希望首先向我们展示您正在运行的实际查询。谁知道也许你在做一些愚蠢的事情我们可以帮助你更好,如果你在mysql_关闭($connect)之后做一个var_转储($items),并将输出粘贴到这里。如果你在mysql_关闭($connect)之后做一个var_转储($items),而不是你刚才添加的代码,我们可以帮助你更好并将输出粘贴到这里。