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的代码。