php - 从 2 个数组在另一个数组中创建一个数组
问题描述
我试图将某个数组中的某些项目输入到另一个数组中,但是随着数组的创建,它会不断添加不应该进入的项目,例如
array(
$parentcat ('id' =>'1000', 'name' => 'assets',)
('id' => '2000', 'name' => 'expenses'),
$categories('id' => '1100', 'name' =>'cash', ‘cat’ => 1000)
('id' => '1200', 'name' => 'AR', ‘cat’ => 1000)
('id' => '2100', 'name' => 'AP', ‘cat’ => 2000)
('id' => '2200', 'name' => 'payroll', ‘cat’ => ‘2000’))
我尝试遍历每个数组并检查是否
for($k = 0; $k < count($parentCat); $k++) {
for ($j = 0; $j < count($categories); $j++) {
//echo $parentCat[$k]['id'] . ' ' . $categories[$j]['cat'];
if ($parentCat[$k]['id'] == $categories[$j]['cat']) {
//echo $categories[$j]['cat'] . '==' . $parentCat[$k]['id'];
$categories_dropdown[$categories[$j]['id']] = $categories[$j]['name'];
}
$parent[$parentCat[$k]['name']] = $categories_dropdown;
}
}
我想要这个
$parentcat('assets' => array('id' =>'1100', 'name' => 'cash'),('id' =>'1200' 'name' => 'AR'),
'expenses' => array('id' => '2100', 'name' => 'AP'),('id' => '2200' 'name' => 'payroll))
for some reason i get
$parentcat('assets' => array('id' => '1100', 'name' => 'cash'),('id'=> '1200'
'name' => 'AR'),
'expenses' => array('id' => '1100' => 'cash'),('id' =>'1200','name' => 'AR'),('id' => '2100', 'name' => 'AP'),('id' => '2200', 'name' => 'payroll))
解决方案
我不确定您在 $categories_dropdown 中想要的输出,但以下内容将为您提供 $parent 的预期输出。当您添加到数组时,它应该在 if 语句中
<?php
$parentcat = [['id' =>'1000', 'name' => 'assets'], ['id' => '2000', 'name' => 'expenses']];
$categories = [ ['id' => '1100', 'name' =>'cash', 'cat' => '1000'],
['id' => '1200', 'name' => 'AR', 'cat' => '1000'],
['id' => '2100', 'name' => 'AP', 'cat' => '2000'],
['id' => '2200', 'name' => 'payroll', 'cat' => '2000']];
for($k = 0; $k < count($parentcat); $k++) {
for ($j = 0; $j < count($categories); $j++) {
if ($parentcat[$k]['id'] == $categories[$j]['cat']) {
$categories_dropdown[$parentcat[$k]['id']] = $categories[$j]['name'];
$parent[$parentcat[$k]['name']][] = $categories[$j];
}
}
}
echo "<pre>";
print_r($parent);
echo "</pre>";
?>
推荐阅读
- python - 泳池系统错误
- flutter - 在 Flutter 中创建一个需要更新的对话框
- javascript - 如何更改另一个 js 文件中的值
- javascript - Firebase - 浏览器 js 与节点 js
- javascript - 在循环之前使用“等待”可以吗?
- neo4j - 无法调用过程“netscan.find_communities”:原因:java.lang.NoSuchMethodError: 'org.neo4j.graphdb.Result org.neo4j.graphdb.GraphDataba
- c# - 使用依赖注入 ASP.Net Core MVC 编辑操作
- c# - C#数字不断添加错误
- java - JDA Discord bot 从文本频道中删除所有消息
- c# - c# 将 JSON 反序列化为 3 个类