Я пытаюсь зациклить один массив внутри другого, а затем сбросить внутренний массив, как только он достигнет конца сайта знакомств 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 Array).
Также хотел бы знать, как наилучшим образом создать файл $ accountArray [], поскольку я думаю, что мой синтаксис - это прикосновение.
спасибо Адаму
Прежде всего, начало вашего $accountArray
достаточно хорошо. Возможно, это можно улучшить, основываясь на содержимом массива, но с предоставленными вами данными инициализация прекрасна.
Что касается циклы двух массивов: проще всего работать с модулем (если вы разделите две стороны операции, результат по модулю - это остаток) на этом. Поскольку ключи массива query-result последовательны, мы можем использовать следующий подход:
<?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
}