2 массива, как их перемешать но так чтобы взаимосвязь осталась?

P
На сайте с 06.01.2009
Offline
601
1049

Ребят, заранее извините, что много вопросов.

Подскажите, пожалуйста.

В массивы записываю данные параллельно


в цикле
$galereyafile[] = $putfiles;
// запишем в массив ширина-высота картинки
list( $width, $height ) = getimagesize("../images/$putfiles");
$galerfilerazm[] = "$width/$height";

т.е.

запись $galerfilerazm[0] соответствует записи $galereyafile[0]

запись $galerfilerazm[1] соответствует записи $galereyafile[1]

и т.д.

но мне надо перемешать хаотично массив $galereyafile

Скажите, пожалуйста, как при этом оставить связь с $galerfilerazm

Если есть у кого готовое решение очень буду признателен. Спасибо

ps Есть вариант

Сперва записывать массив $galereyafile, потом перемешать его, потом уже делать

list( $width, $height ) = getimagesize("../images/$putfiles");

$galerfilerazm[] = "$width/$height";

но вдруг есть другое решение, при котором код менять не надо

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#1

а вы многомерные массивы не изучали?

$galereyafile[]['namefile'] = $putfiles;

// запишем в массив ширина-высота картинки

list( $width, $height ) = getimagesize("../images/$putfiles");

$galereyafile[]['size'] = "$width/$height";

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
edogs software
На сайте с 15.12.2005
Offline
775
#2

Элегантный кусок г-но кода


$link_array=array_flip($galereyafile); //сохранили соответствия ID=>имя
shuffle($galereyafile); // перемешали массив рандомно
foreach($galereyafile as $key=>$value) {
echo $value; // имя файла
echo $galerfilerazm[$link_array[$value]];
}

Или делайте правильное решение изначально


до цикла: $i=0;
в цикле
$gal_data[$i]['file']=$putfiles;
list( $width, $height ) = getimagesize("../images/$putfiles");
$gal_data[$i]['size']= "$width/$height";
$i++;

И потом работаете с общим массивом.

LEOnidUKG:
а вы многомерные массивы не изучали?

$galereyafile[]['namefile'] = $putfiles;
// запишем в массив ширина-высота картинки
list( $width, $height ) = getimagesize("../images/$putfiles");
$galereyafile[]['size'] = "$width/$height";

А Вы массивы вообще изучали? 😂

В Вашем варианте namefile и size будут в разных (подряд идущих) элементах $galereyafile, а должны быть в одном. Любое новое указание [] создает новый элемент.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#3
edogs:

А Вы массивы вообще изучали? 😂
В Вашем варианте namefile и size будут в разных (подряд идущих) элементах $galereyafile, а должны быть в одном. Любое новое указание [] создает новый элемент.

Да знаю, что отправил в торопясь, форум через раз открывается, думал вообще не отправилось.

P
На сайте с 06.01.2009
Offline
601
#4

Спасибо ребят, извините, я только учусь.

Я не профи в этом.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий