Php 在foreach循环中从2个不同的多维数组中输出1个数组
我需要一些多维数组的帮助。我需要从PHP中的另外两个数组中输出/创建一个新数组。我知道我的例子是错误的,但这里有一个我所拥有的几乎有效的例子:Php 在foreach循环中从2个不同的多维数组中输出1个数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我需要一些多维数组的帮助。我需要从PHP中的另外两个数组中输出/创建一个新数组。我知道我的例子是错误的,但这里有一个我所拥有的几乎有效的例子: $myarray = array( 'customid1' = array( name=> 'Tim', address=> '23 Some Address' ), 'customid2' = array(
$myarray = array(
'customid1' = array(
name=> 'Tim',
address=> '23 Some Address'
),
'customid2' = array(
name=> 'John',
address=> 'Another Address'
)
);
$keys = array();
$values = array();
foreach($myarray as $key => $keyitem) {
$getkeys = $myarray[$key]['name'] .'-and-a-string';
$keys[] = $getkeys;
}
foreach($myarray as $value => $valueitem) {
$getvalues = 'some-other-text-'. $myarray[$key]['address'];
$values[] = $getvalues;
}
$newarray = array_combine($keys, $values);
上面的代码将获得所有正确的键,除了新数组中该键的值。相反,它在所有键中显示数组中的最后一个值。因此,我的打印结果如下所示:
Array ( Tim-and-a-string => some-other-text-Another Address
John-and-a-string => some-other-text-Another Address
)
如您所见,“其他文本另一个地址”出现在所有文本上,但第二个键“Tim-and-a-string”需要包含“其他文本23其他地址”这是一个非常小的错误,但您使用的变量错误: 您在第二个
foreach()
中使用的是$key
而不是$value
$key
将与之前循环中的最后一个键相同,因为新的foreach循环不会覆盖它
这应该起作用:
$myarray = array(
'customid1' = array(
name=> 'Tim',
address=> '23 Some Address'
),
'customid2' = array(
name=> 'John',
address=> 'Another Address'
)
);
$keys = array();
$values = array();
foreach($myarray as $key => $keyitem) {
$getkeys = $myarray[$key]['name'] .'-and-a-string';
$keys[] = $getkeys;
}
foreach($myarray as $value => $valueitem) {
$getvalues = 'some-other-text-'. $myarray[$value]['address'];
$values[] = $getvalues;
}
$newarray = array_combine($keys, $values);
这是一个非常小的错误,但您使用了错误的变量: 您在第二个
foreach()
中使用的是$key
而不是$value
$key
将与之前循环中的最后一个键相同,因为新的foreach循环不会覆盖它
这应该起作用:
$myarray = array(
'customid1' = array(
name=> 'Tim',
address=> '23 Some Address'
),
'customid2' = array(
name=> 'John',
address=> 'Another Address'
)
);
$keys = array();
$values = array();
foreach($myarray as $key => $keyitem) {
$getkeys = $myarray[$key]['name'] .'-and-a-string';
$keys[] = $getkeys;
}
foreach($myarray as $value => $valueitem) {
$getvalues = 'some-other-text-'. $myarray[$value]['address'];
$values[] = $getvalues;
}
$newarray = array_combine($keys, $values);
这是一个非常小的错误,但您使用了错误的变量: 您在第二个
foreach()
中使用的是$key
而不是$value
$key
将与之前循环中的最后一个键相同,因为新的foreach循环不会覆盖它
这应该起作用:
$myarray = array(
'customid1' = array(
name=> 'Tim',
address=> '23 Some Address'
),
'customid2' = array(
name=> 'John',
address=> 'Another Address'
)
);
$keys = array();
$values = array();
foreach($myarray as $key => $keyitem) {
$getkeys = $myarray[$key]['name'] .'-and-a-string';
$keys[] = $getkeys;
}
foreach($myarray as $value => $valueitem) {
$getvalues = 'some-other-text-'. $myarray[$value]['address'];
$values[] = $getvalues;
}
$newarray = array_combine($keys, $values);
这是一个非常小的错误,但您使用了错误的变量: 您在第二个
foreach()
中使用的是$key
而不是$value
$key
将与之前循环中的最后一个键相同,因为新的foreach循环不会覆盖它
这应该起作用:
$myarray = array(
'customid1' = array(
name=> 'Tim',
address=> '23 Some Address'
),
'customid2' = array(
name=> 'John',
address=> 'Another Address'
)
);
$keys = array();
$values = array();
foreach($myarray as $key => $keyitem) {
$getkeys = $myarray[$key]['name'] .'-and-a-string';
$keys[] = $getkeys;
}
foreach($myarray as $value => $valueitem) {
$getvalues = 'some-other-text-'. $myarray[$value]['address'];
$values[] = $getvalues;
}
$newarray = array_combine($keys, $values);
试试这个:
$newarray = array_combine(
array_values(array_map(function ($v) { return $v['name'].'-and-a-string'; }, $myarray)),
array_values(array_map(function ($v) { return 'some-other-text-'.$v['address']; }, $myarray))
);
试试这个:
$newarray = array_combine(
array_values(array_map(function ($v) { return $v['name'].'-and-a-string'; }, $myarray)),
array_values(array_map(function ($v) { return 'some-other-text-'.$v['address']; }, $myarray))
);
试试这个:
$newarray = array_combine(
array_values(array_map(function ($v) { return $v['name'].'-and-a-string'; }, $myarray)),
array_values(array_map(function ($v) { return 'some-other-text-'.$v['address']; }, $myarray))
);
试试这个:
$newarray = array_combine(
array_values(array_map(function ($v) { return $v['name'].'-and-a-string'; }, $myarray)),
array_values(array_map(function ($v) { return 'some-other-text-'.$v['address']; }, $myarray))
);
谢谢,这正是我需要的。真不敢相信我错过了。谢谢,这正是我需要的。真不敢相信我错过了。谢谢,这正是我需要的。真不敢相信我错过了。谢谢,这正是我需要的。真不敢相信我错过了。