我有两个包含不同键和值的数组。但是,一些键存储字符串(整数),我想在一个数组(即array_merge)中混合在一起。我所需要的只是收集这些整数。
使用var_dump数组看起来像这样:
这是第一个
array
0 =>
array
'featured_pic' => string '740' (length=3)
1 =>
array
'featured_pic' => string '741' (length=3)
2 =>
array
'featured_pic' => string '742' (length=3)
这是第二个
array
0 =>
array
'accommodation_roomphoto' => string '456' (length=3)
'accommodation_roomname' => string 'Single room' (length=11)
'accommodation_roomsize' => string 'single' (length=6)
'price_unit' => string '60' (length=2)
'price_currency' => string 'USD' (length=3)
1 =>
array
'accommodation_roomphoto' => string '434' (length=3)
'accommodation_roomname' => string 'Double room' (length=11)
'accommodation_roomsize' => string 'double' (length=6)
'price_unit' => string '80' (length=2)
'price_currency' => string 'USD' (length=3)
我真正需要的是来自数组#1的featured_pic和来自数组#2的accommodation_roomphoto。我需要将所有这些数字收集到一个数组中(我不再需要键 - 我需要的是一系列来自这些键的数字,在上面的示例中:740,741,742,456,434) :
array
0 => '740'
1 => '741'
2 => '742'
3 => '456'
4 => '434'
结果数组应该类似于上面的例子(顺序并不重要)
谢谢
答案 0 :(得分:0)
$new_array = array();
foreach($array1 as $array) {
$new_array[] = intval($array['featured_pic']);
}
foreach($array2 as $array) {
$new_array[] = intval($array['accommodation_roomphoto']);
}
这是我对这个问题的理解。
我只是在两个阵列上做了一个foreach,并从每个阵列中取出了所需的日期。
我还使用intval()将字符串转换为新数组中的整数。
希望这有帮助。
答案 1 :(得分:0)
如果你知道你感兴趣的键,这只是一个简单的循环工作:
$result = array();
foreach ($array1 as $item) {
if (isset($item['featured_pic'])) $result[] = (int) $item['featured_pic'];
}
foreach ($array2 as $item) {
if (isset($item['accommodation_roomphoto'])) $result[] = (int) $item['accommodation_roomphoto'];
}
print_r($result);
或者,如果您不知道所需的键,此例程将获取存储为两个数组的字符串的所有数字:
$result = array();
foreach ($array1 as $item) {
foreach ($item as $sub) {
if (is_numeric($sub)) $result[] = (int) $sub;
}
}
foreach ($array2 as $item) {
foreach ($item as $sub) {
if (is_numeric($sub)) $result[] = (int) $sub;
}
}
print_r($result);
... 但是这不会从上面的数组中得到你想要的结果,因为第二组数组中的price_unit
键也是数字。
答案 2 :(得分:0)
使用array_merge
和array_map
的单线程。假设您的两个数组是$a
和$b
:
$result = array_merge(
array_map(function($el) { return $el['featured_pic']; }, $a),
array_map(function($el) { return $el['accomodation_roomphoto']; }, $b)
);
传递给array_map
的匿名函数需要PHP> = 5.3。