php - 如何从数组中提取数组取决于值
问题描述
我的数组是
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 和许多代码,但没有按我的意愿提取我该怎么做?
解决方案
您可以通过循环“拆分”您的数组并将值放入其他数组中,如下所示:
$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 出现时,此代码将使用数组键创建一个变量。
推荐阅读
- unity3d - 我无法检查是否在绳桥上接地
- c# - 使用 ControlTemplate.Triggers 控制按钮前景色
- java - 无法使用 mmkv 存储库添加恢复的库
- python - 反向缩放中的 ValueError
- postgresql - 我的 Dockerized Flask Web 应用程序无法与本地 Postgres 连接
- javascript - 雪花:从另一个过程调用的带有 ARRAY 参数的过程
- python-3.x - 使用 Cartopy 绘制跨越日期线的 geoJSON 轨迹而不会出现错误线
- python - 当我 scan_dragto 平移我的画布时,所有画布项目都“正确移动”但它们的坐标不会改变
- apache-kafka - 在 Kafka MirrorMaker 2 上进行活动活动配置时避免主题上的集群前缀
- javascript - 如何在 html 文档中运行脚本并在节点中获取结果文档?