首页 > 解决方案 > 如何从数组中提取数组取决于值

问题描述

我的数组是

    Array
(
    [Company] => Company
    [Model] =>Model
    [galleryID] => div
    [gallery] => Gallery #1
    [networking] => div
    [Type] =>Type
    [dualim] => DualIM
    [era] => div
    [mera] => Maera
    [meraos] => Meraeos
    [aper] => Aper
  )

当值为“div”关闭数组并生成一个新数组时,如何将其分隔为多个数组

$Company =  Array
    (
        [Company] => Company
        [Model] =>Model
      );

$gallery = array(
        [galleryID] => div,
        [gallery] => Gallery #1

);

$networking = array(
        [networking] => div,
        [Type] =>Type,
        [dualim] => DualIM
);

$era = array(
        [era] => div,
        [mera] => Maera,
        [meraos] => Meraeos,
        [aper] => Aper,
);

我尝试使用 array_slice 和许多代码,但没有按我的意愿提取我该怎么做?

标签: phparraysfunctionsortingarraylist

解决方案


您可以通过循环“拆分”您的数组并将值放入其他数组中,如下所示:

$split = [];
$i = 0;
foreach($arr as $k => $v) {
    if ($v == 'div') {
        $i++;
    }
    $split[$i][$k] = $v;
}

print_r($split);

结果是一个数组。至于变量名,我找不到它背后的任何逻辑。

只是为了好玩,但作为生产代码没有意义,我写这个是为了更好地适应你的问题,但正如我所说,使用这样的东西是没有意义的:

$currentVar = '';
$i = 0;
foreach($arr as $k => $v) {
    if(!$currentVar) {
        $currentVar = $k;
        $$currentVar = [];
    }

    if ($v == 'div') {
        $currentVar = $k;
    }
    $$currentVar[$k] = $v;
}

var_dump($Company, $galleryID, $networking, $era);

当每个新 value = div 出现时,此代码将使用数组键创建一个变量。


推荐阅读