PHP - 循环访问和添加/追加项目到数组


PHP - Looping through and adding/appending items to an array

新手程序员在这里。我正在尝试修改我拥有的一些代码,这些代码基本上可以查看数据库并以数组形式返回为所述物业预订度假租赁的日期。但是,长话短说,我需要比较两个属性,并在一个数组中创建和数组中预订的两天。 所以基本上,我需要两组查询中的一个长数组。

我想我有概念,只是不需要确切的语法,因为似乎我的数组在第二个、第三个、第四个循环上被覆盖了。

$bookedDates = array();
$idlist = explode(',', $_GET['id']);   //stored as integers, ie 342,653
foreach ($idlist as $ids) {
    $sql = "exec dbo.SProc_OnlineBookedDays '" 
                . $database->escapeString($ids) . "', " 
                . date('m', $startDate) . ", " . date('Y', $startDate);
    $resultsArray = $database->query($sql);
    if ($resultsArray) {
        foreach ($resultsArray as $row) {
            $bookedDates[] = strtotime(date('m', $startDate) . '/' 
                            . $row['computed'] . '/' . date('Y', $startDate));
        }
    }
}
print_r($bookedDates);

我有一种感觉,问题出在 bookedDates[] 语法上。是的?提前感谢您的任何帮助!

数组仅显示$ids中的最后一个,而不是组合的数组。

例:记录 1 的结果

Array
(
    [0] => 'apple'
    [1] => 'cranberry'
    [2] => 'juice'
)

记录 2 的结果

Array
(
    [0] => 'oranges'
    [1] => 'pineapple'
    [2] => 'rasberry'
)

它们应该组合成

Array
(
    [0] => 'apple'
    [1] => 'cranberry'
    [2] => 'juice'
    [3] => 'oranges'
    [4] => 'pineapple'
    [5] => 'rasberry'
)

但我只在print_r期间获得了创纪录的 1 结果。

好吧...您可以使用array_merge( $arr1, $arr2 ); [文档] 而不是遍历所有元素......但是,如果您只从其中一个数组中获取结果,则很可能其中一个查询返回了空结果。

另一方面,应避免在 ForEach 循环上执行查询;您可能希望检查是否有任何方法可以使用单个查询获取两天的结果。

如果您的数组键相同,您可以使用array_merge 它基本上将两个数组合并为一个 我在你的要求中是对

$array_one = array('0' => 'oranges', '1' => 'pineapple', '2' => 'rasberry');
$array_two = array('0' => 'apple', '1' => 'cranberry', '2' => 'juice');
$outcome = array_merge($array_one, $array_two);