Как извлечение массивов из массива зависит от значений

  • Автор темы Werd1
  • 21
  • Обновлено
  • 12, May 2024
  • #1
Мой массив
 $arr = array(

'global' => array(

array('tabs', 'tabs', 'tabs', array(

'Main' => 'main',

'Gallery' => 'galleryID',

'mera' => 'mera',

)),

array('main','div', 'div'),

array('egice', 'Eice', 'text', '', ''),

array('closeHere', 'closeHere', 'closeHere'),

array('galleryID','div', 'div'),

array('gallery', 'Gallery #1', 'image', '', ''),

array('closeHere', 'closeHere', 'closeHere'),

array('networking', 'div', 'div'),

array('siLype', 'SiLype', 'text', '', ''),

array('gpXCge', 'GpXCge', 'toggle_button', '1', 'Yes', 'No', ''),

array('closeHere', 'closeHere', 'closeHere'),

array('mera', 'div', 'div'),

array('maimera', 'Maimera', 'repeatedText', 'resYI', 'GYL',''),

array('closeHere', 'closeHere', 'closeHere'),

array( 'moures','div', 'div'),

array('meLmo', 'MeLmo', 'text', '', ''),

array('cYSlot', 'CYSlot', 'text', '', ''),

array('closeHere', 'closeHere', 'closeHere'),

array('clT', 'clT', 'clT'),

),

);

PHP: как я могу разделить его на несколько массивов, когда значение равно «div», закрыть массив и создать новый. Я пытался здесь это сделать, но не могу
https://3v4l.org/ppj1O

Не могли бы вы помочь?

Werd1


Рег
11 Dec, 2011

Тем
2

Постов
3

Баллов
23
  • 21, May 2024
  • #2
Что-то вроде этого будет работать, если вы не против не тестировать вложенный массив.
 

$arr = array(

'global' => array(

array('tabs', 'tabs', 'tabs', array('Main' => 'main', 'Gallery' => 'galleryID', 'mera' => 'mera' )),

array('main','div', 'div'),

array('egice', 'Eice', 'text', '', ''),

array('closeHere', 'closeHere', 'closeHere'),

array('galleryID','div', 'div'),

array('gallery', 'Gallery #1', 'image', '', ''),

array('closeHere', 'closeHere', 'closeHere'),

array('networking', 'div', 'div'),

array('siLype', 'SiLype', 'text', '', ''),

array('gpXCge', 'GpXCge', 'toggle_button', '1', 'Yes', 'No', ''),

array('closeHere', 'closeHere', 'closeHere'),

array('mera', 'div', 'div'),

array('maimera', 'Maimera', 'repeatedText', 'resYI', 'GYL',''),

array('closeHere', 'closeHere', 'closeHere'),

array( 'moures','div', 'div'),

array('meLmo', 'MeLmo', 'text', '', ''),

array('cYSlot', 'CYSlot', 'text', '', ''),

array('closeHere', 'closeHere', 'closeHere'),

array('clT', 'clT', 'clT'),

),

);

$set = array();

$setK = 0;

foreach($arr['global'] as $row){

if (in_array('div', $row)){

$setK++;

}

$set[$setK][] = $row;

}

var_export($set);
Код (php):
 

imtecseo


Рег
28 Aug, 2015

Тем
0

Постов
1

Баллов
1
  • 08, Jun 2024
  • #3
1) перестаньте говорить, что массив такой проклятый... 2) $k => $v вашего кода будет возвращать «глобальный» и весь массив, а не «div» - ВСЕГДА. Вам следует искать $v[1] или $v[2] === 'div', хотя трудно сказать, какой именно.
 

Виктория_2012


Рег
01 Oct, 2012

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966

Интересно