PHP在另一个内部循环一个数组

时间:2014-12-11 08:14:44

标签: php arrays

我试图将一个数组循环到另一个数组中,然后在内部数组到达约会网站http://www.arab.dating

结束时重置内部数组

我有一个数组正在从数据库查询中填充。我非常熟悉并且如下所示:

$sql="SELECT users from users LIMIT 100;";
$pds=$database->pdo->prepare($sql); $pds->execute(array()); $rows=$pds->fetchAll();

然后我需要用数据填充另一个数组,并且我已经尝试了两个想法:

1

$accountArray[] = array('1' => 'data', '2' => 'data', '3' => 'data', '4' => 'data');
$accountArray[] = array('1' => 'data', '2' => 'data', '3' => 'data', '4' => 'data');
$accountArray[] = array('1' => 'data', '2' => 'data', '3' => 'data', '4' => 'data');

2

$accountArray = array(array(1 => 'data',
                                    2 => 'data',
                                    3 => 'data',
                                    4 => 'data'
                                ),
                            array(1 => 'data',
                                    2 => 'data',
                                    3 => 'data',
                                    4 => 'data'
                                ),
                            array(1 => 'data',
                                    2 => 'data',
                                    3 => 'data',
                                    4 => 'data'
                                )
                        );

最后,我需要在内部使用第二个数组循环初始数组,然后在完成后重置/重启第二个数组。

    $num = 0;
    foreach($rows as $value) {
        $message = ucfirst($value['users'];
        echo $message;


        echo $accountArray[$num++]['1'];
}

对不起,如果这是一个小小的皱纹。

我试图获得一个解决方案,我可以遍历数据库返回,然后继续循环遍历内部$ accountArray [](只要外部$ rows数组就不会这样。)

还想知道如何最好地提交$ accountArray [],因为我认为我的语法是一个触发器。

谢谢你 亚当

1 个答案:

答案 0 :(得分:0)

首先,启动$accountArray就足够了。也许它可以根据数组的内容进行改进,但是根据你提供的数据,初始化非常好。

关于两个数组的循环:最简单的方法是使用modulo(如果你将操作的两边分开,模数的结果是余数)。由于query-result-array的键是顺序的,我们可以使用以下方法:

<?php

$sql = "SELECT users from users LIMIT 100;";
$pds = $database->pdo->prepare($sql);
$pds->execute(array());
$rows = $pds->fetchAll();

$accountArray = array(
    array(
        '1' => '0',
        '2' => 'data', 
        '3' => 'data', 
        '4' => 'data',
    ),
    array(
        '1' => '1',
        '2' => 'data', 
        '3' => 'data', 
        '4' => 'data',
    ),
    array(
        '1' => '2',
        '2' => 'data', 
        '3' => 'data', 
        '4' => 'data',
    ),
);

$accountCount = count($accountArray);  // do this outside of the loop for performance
foreach($rows as $key => $row) {
    $marker = $key % $accountCount;    // the actual magic for selecting the correct array-index

    $message = ucfirst($row['users']);
    echo $message;
    echo $accountArray[$marker]['1'];  // do what you want with the result
}