为了账号安全,请及时绑定邮箱和手机立即绑定

从 2 个数组在另一个数组中创建一个数组

从 2 个数组在另一个数组中创建一个数组

PHP
拉风的咖菲猫 2021-11-13 10:25:53
我试图将某个数组中的某些项输入到另一个数组中,但是在创建该数组时,它不断添加不应该输入的项,例如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))
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

只需$parent[$parentCat[$k]['name']] = $categories_dropdownif语句内部移动,否则无论条件是否满足,您都在分配变量,但只有在条件满足时,值才会改变。这就是为什么你得到意想不到的结果的原因。

查看完整回答
反对 回复 2021-11-13
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

我不确定您在 $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>";


?>


查看完整回答
反对 回复 2021-11-13
  • 2 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信