Мне трудно понять необходимость сделать что-то вроде того, что вы предлагаете, если бы это был я, я не заполнил бы массив, используя вашу структуру, я бы создал массив следующим образом:
array
0 =>
array
'pic' => string '740' (length=3)
'alt' => string '' (length=0)
1 =>
array
'pic' => string '741' (length=3)
'alt' => string '' (length=0)
2 =>
array
'pic' => string '742' (length=3)
'alt' => string 'Test Caption 1' (length=0)
3 =>
array
'pic' => string '748' (length=3)
'alt' => string 'Test Caption 2' (length=0)
Эта структура массива объединяет атрибуты изображения, а не разделяет их.
tomtheman5 имеет 80%, но не учитывает смещение и параметры длины для вызовов array_slice, которые необходимо передать, чтобы получить правильные срезы. Тем не менее, он делает хорошее замечание: если вы придерживаетесь структуры массива, вы можете столкнуться с проблемами, если у вас нет соответствующих элементов в каждом массиве 'pic' и 'alt'. Если это не проблема, рассмотрите следующий фрагмент:
$slice1 = array();
$slice2 = array();
foreach ($array as $key => $value) {
$arrayCount = count($array[$key]);
$arrayHalfCount = ($arrayCount / 2);
$slice1[$key] = array_slice($array[$key], 0, $arrayHalfCount);
$slice2[$key] = array_slice($array[$key], $arrayHalfCount);
}
- Правка -
$lodgepics = get_field('accommodation_rooms');
$featuredpics = get_field('featured_pics');
$showcasepics = array();
foreach ($featuredpics as $featuredpic) {
if ((isset($featuredpic['featured_pic'])) && (!empty($featuredpic['featured_pic']))) {
$currentPic['pic'] = $featuredpic['featured_pic'];
$currentPic['alt'] = (isset($featuredpic['featured_alt'])) ? $featuredpic['featured_alt'] : '';
$showcasepics[] = $currentPic;
}
}
foreach ($lodgepics as $lodgepic) {
if ((isset($lodgepic['accommodation_roomphoto'])) && (!empty($lodgepic['accommodation_roomphoto']))) {
$currentPic['pic'] = $lodgepic['accommodation_roomphoto'];
$currentPic['alt'] = (isset($lodgepic['accommodation_roomname'])) ? $lodgepic['accommodation_roomname'] : '';
$showcasepics[] = $currentPic;
}
}
$showcasepicsCount = count($showcasepics);
$showcasepicsHalfCount = ($showcasepicsCount / 2);
$slice1 = array_slice($showcasepics, 0, $showcasepicsHalfCount);
$slice2 = array_slice($showcasepics, $showcasepicsHalfCount);