Как я могу создать массив из цикла массивов foreach?

У меня есть два массива. Первый создается путем создания кусков массива $properties,

$array1 = array_chunk($properties,10000,true);

Это выглядит так:

array(4) {
[0]=>
array(10000) {
["12345"]=>
array(5) {
["dateTime"]=>
string(19) "2016-10-12 19:46:25"["fileName"]=>
string(46) "monkey.jpg"["path"]=>
string(149) "Volumes/animals/monkey.jpg"["size"]=>
string(7) "2650752"}
["678790"]=>
array(5) {
["dateTime"]=>
string(19) "2016-10-12 14:39:43"["fileName"]=>
string(45) "elephant.jpg"["path"]=>
string(171) "Volumes/animals/elephant.jpg"["size"]=>
string(7) "2306688"}

... and so on.

Другой создается из базы данных:

  $countResult = "SELECT COUNT(*) AS `count` FROM files";
$q = $pdo->prepare($countResult);
$q->execute();
$row = $q->fetch(PDO::FETCH_ASSOC);
$totalCount = $row['count'];
$chunkSize = 10000;
$from      = 0;

while($from < $totalCount)
{
$sql = 'SELECT id, dateTime, fileName, path, size FROM files LIMIT ' . $from . ', ' . $chunkSize . ';';
$q = $pdo->prepare($sql);
$q->execute();
$rows = $q->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC);

echo "<pre>";
var_dump($rows);
echo "</pre>";

$from += $chunkSize;
}

Результат var_dump($rows) это:

array(10000) {
["12345"]=>
array(5) {
["dateTime"]=>
string(19) "2016-10-12 19:46:25"["fileName"]=>
string(46) "monkey.jpg"["path"]=>
string(149) "Volumes/animals/monkey.jpg"["size"]=>
string(7) "2650752"}
["678790"]=>
array(5) {
["dateTime"]=>
string(19) "2016-10-12 14:39:43"["fileName"]=>
string(45) "elephant.jpg"["path"]=>
string(171) "Volumes/animals/elephant.jpg"["size"]=>
string(7) "2306688"}

and so on...

array(10000) {
["23424"]=>
array(5) {
["dateTime"]=>
string(19) "2016-10-12 14:46:25"["fileName"]=>
string(46) "rabbit.jpg"["path"]=>
string(149) "Volumes/animals/rabbit.jpg"["size"]=>
string(7) "2655752"}
["163452"]=>
array(5) {
["dateTime"]=>
string(19) "2016-10-12 12:39:43"["fileName"]=>
string(45) "snake.jpg"["path"]=>
string(171) "Volumes/animals/snake.jpg"["size"]=>
string(7) "2406688"}


and so on...

Так $array1 это расщепленный массив, который как-то выглядит так, как будто это все еще один массив, который содержит 4 массива … (я не очень понимаю это), но тем не менее: мне нужно создать второй массив ($array2) из базы данных MySQL, которая будет выглядеть точно так же, как $array1 и я не знаю как это сделать. Цель в том, что я хочу сравнить $array1 а также $array2 проверка, если они совпадают.

0

Решение

Создайте массив раньше времени, затем отправьте данные из базы данных:

//create the array here
$rows = [];
while($from < $totalCount)
{
$sql = 'SELECT id, dateTime, fileName, path, size FROM files LIMIT ' . $from . ', ' . $chunkSize . ';';
$q = $pdo->prepare($sql);
$q->execute();
//HERE $rows[]
$rows[] = $q->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC);

echo "<pre>";
var_dump($rows);
echo "</pre>";

$from += $chunkSize;
}

Затем сравните, как вы хотите, массив $rows с $array1

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]