Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用键从两个数组中获取数组值_Php_Arrays_Foreach - Fatal编程技术网

Php 如何使用键从两个数组中获取数组值

Php 如何使用键从两个数组中获取数组值,php,arrays,foreach,Php,Arrays,Foreach,我的数组是 $name=> Array ( [0] => General [1] => General [2] => Outdoors [3] => Dining [4] => Dining [5] => Kitchen [6] => Kitchen

我的数组是

 $name=>
    Array
        (
            [0] => General
            [1] => General
            [2] => Outdoors
            [3] => Dining
            [4] => Dining
            [5] => Kitchen
            [6] => Kitchen

        )

 $key1=>
   Array
        (
            [0] => 1
            [1] => 2
            [2] => 7
            [3] => 11
            [4] => 12
            [5] => 17
            [6] => 18
        )
数组函数

 foreach ($key1 as $key => $value1) {
                    foreach ($name as $key => $value) {

                        echo $value "=>" $value1 ;
                        //echo "$value1";
                    }
                }
在这里,我想使用相同的键打印这些值

如果
$name
的索引为
[0]
且我的
$key1
也采用
[0]

i、 e:我的结果应该是

General => 1
General => 2
Outdoors => 7
Dining => 11
Dining => 12
Kitchen => 17
Kitchen => 18

您只需要迭代一个数组,而不是两个数组:

foreach ($name as $key => $name_value) {
    echo "$name_value => " . $key1[$key];
}

您只需要迭代一个数组,而不是两个数组:

foreach ($name as $key => $name_value) {
    echo "$name_value => " . $key1[$key];
}

您可以使用一个简单的for循环来实现这一点

for ($i = 0; $i < count($name); $i++) {
    echo $name[$i] . '=>' . $key[$i]
}
for($i=0;$i。$key[$i]
}

您可以使用一个简单的for循环来完成此操作

for ($i = 0; $i < count($name); $i++) {
    echo $name[$i] . '=>' . $key[$i]
}
for($i=0;$i。$key[$i]
}

代码的问题是两个foreach使用相同的变量
$key
,因此最后一个变量会覆盖该值

foreach ($key1 as $key => $value1) {
    foreach ($name as $key => $value) {

        echo $value "=>" $value1 ;
        //echo "$value1";
    }
}
您可以通过组合这两个数组来简化操作,使
$name
数组成为键,
$key1
数组成为值

$newArray = array_combine($name, $key1);
foreach ($newArray as $name => $key) {
    echo "{$name} =>{$key}";
}

代码的问题是,两个foreach都使用了相同的变量
$key
,因此最后一个变量会覆盖该值

foreach ($key1 as $key => $value1) {
    foreach ($name as $key => $value) {

        echo $value "=>" $value1 ;
        //echo "$value1";
    }
}
您可以通过组合这两个数组来简化操作,使
$name
数组成为键,
$key1
数组成为值

$newArray = array_combine($name, $key1);
foreach ($newArray as $name => $key) {
    echo "{$name} =>{$key}";
}

这对你有用

<?php 
$a1= array('General','Outdoors','Dining ');
$a2= array('1','2','3');
$newArr=array();
foreach($a1 as $key=> $val)
{
    $newArr[$a2[$key]]= $val;
}
echo "<pre>"; print_r($newArr); 
?>

这对你有用

<?php 
$a1= array('General','Outdoors','Dining ');
$a2= array('1','2','3');
$newArr=array();
foreach($a1 as $key=> $val)
{
    $newArr[$a2[$key]]= $val;
}
echo "<pre>"; print_r($newArr); 
?>

如果您希望以关联数组的形式输出,并且不允许在关联数组中使用相同的键名,那么这恐怕是不可能的。如果处理关联数组,它将始终被覆盖

虽然您可能会有这样的情况:

array_映射(函数($key,$val){returnarray($key=>$val);},$name,$key1)

输出:

Array([0]=>Array([General]=>1)[1]=>Array([General]=>2)[2]=>Array([Outdoor]=>7)[3]=>Array([Dining]=>11)[4]=>Array([Dining]=>12)[5]=>Array([Kitchen]=>17)[6]=>Array([Kitchen]=>18])

但如果希望以字符串格式输出,则可以

for($i=0;$i。$key[$i]。

}

如果您希望以关联数组的形式输出,而不允许在关联数组中使用相同的键名,恐怕这是不可能的。如果处理关联数组,它将始终被覆盖

虽然您可能会有这样的情况:

array_映射(函数($key,$val){returnarray($key=>$val);},$name,$key1)

输出:

Array([0]=>Array([General]=>1)[1]=>Array([General]=>2)[2]=>Array([Outdoor]=>7)[3]=>Array([Dining]=>11)[4]=>Array([Dining]=>12)[5]=>Array([Kitchen]=>17)[6]=>Array([Kitchen]=>18])

但如果希望以字符串格式输出,则可以

for($i=0;$i。$key[$i]。

}

只需更改foreach,如下所示

foreach($key1作为$key=>$value1){
回显$name[$key]。“=>”$value1。“
”; }
如果正在通过linux终端运行,请将

替换为
\n
。也不要错过连接字符串的“
”运算符


嵌套的foreach无法满足您的需要。。。祝你好运。

只需按如下方式更改foreach

foreach($key1作为$key=>$value1){
回显$name[$key]。“=>”$value1。“
”; }
如果正在通过linux终端运行,请将

替换为
\n
。也不要错过连接字符串的“
”运算符


嵌套的foreach无法满足您的需要。。。祝你好运。

foreach($key=>value的名称){echo$value“=>”$key1[$key];}
每个
foreach
都将乘以嵌套设置中的结果数。因此,在您的代码中,您将有36个输出。只需使用foreach一次。
foreach($key=>name$value){echo$value“=>”$key1[$key];}
每个
foreach
都将乘以嵌套设置中的结果数。因此,在您的代码中,您将有36个输出。只需使用foreach一次。在这里,如果键具有相同的名称,则只需要最后一个值:即:General=>2,对于Dining=>12,对于Kitchen=>18..但我需要所有的值。这是正确的,我忘记了那个细节,你应该使用@Mureinik的代码。这里,如果键具有相同的名称,那么它只需要最后一个值:即:General=>2,对于Dining=>12,对于Kitchen=>18。但是我需要所有的值。我忘记了那个细节,你应该使用@Mureinik的代码。