HI,
我有两个阵列。
var_dump($tbDateArr);
var_dump($tbTitleArr);
输出:
array
0 =>
object(stdClass)[16]
public 'eventDate' => string '5' (length=1)
1 =>
object(stdClass)[17]
public 'eventDate' => string '16' (length=2)
array
0 =>
object(stdClass)[18]
public 'eventTitle' => string 'mar' (length=10)
1 =>
object(stdClass)[19]
public 'eventTitle' => string 'tri' (length=10)
BTW,我打印出来,
print_r($tbDateArr);
echo '<br>';
print_r($tbTitleArr);
Array ( [0] => stdClass Object ( [eventDate] => 5 ) [1] => stdClass Object ( [eventDate] => 16 ) )
Array ( [0] => stdClass Object ( [eventTitle] => mar ) [1] => stdClass Object ( [eventTitle] => tri ) )
我试图将它们组合起来,
$dataArr = array_combine($tbDateArr, $tbTitleArr);
我只想要简单的结果,
Array
(
[5] => mar
[16] => tri
)
有什么不对吗?感谢您的帮助。
[使用array_merge更新]
array
0 =>
object(stdClass)[16]
public 'eventDate' => string '5' (length=1)
1 =>
object(stdClass)[17]
public 'eventDate' => string '16' (length=2)
2 =>
object(stdClass)[18]
public 'eventTitle' => string 'fuzhou mar' (length=10)
3 =>
object(stdClass)[19]
public 'eventTitle' => string 'weihai tri' (length=10)
答案 0 :(得分:3)
假设$tbDateArr
和$tbTitleArr
条目只有一个属性(分别为eventDate
和eventTitle
),您可以这样做:
$array = array_combine(
array_map('current', $tbDateArr),
array_map('current', $tbTitleArr)
);
如果他们拥有(或可以拥有)多个属性,那么最好使用优质的foreach
,假设他们有匹配的密钥(如果他们没有,只需array_values
他们事先):
$array = array();
foreach ($tbDateArr as $key => $value) {
$array[$value] = $tbTableArr[$key];
}
答案 1 :(得分:1)
修改强> 这工作
$arr1 = array(
"5",
"16",
);
$arr2 = array(
"mar",
"tri",
);
$result = array_combine($arr1, $arr2);
print_r($result);
答案 2 :(得分:1)
您不能直接组合数组,因为您需要的值存储为对象中的属性 - 您必须将这些值拉出并使用它们:
$keys = array_map('getEventDate', $tbDateArr);
$values = array_map('getEventDate', $tbTitleArr);
print_r(array_combine($keys, $values));
function getEventDate($o) {
return $o->eventDate;
}
答案 3 :(得分:0)
您正在尝试组合包含对象的数组。 array_combine使用其第一个参数作为键的第二个参数。