我有两个数组,一个整数数组和一个字符串数组。我想把这两者结合起来,但这对我来说很麻烦。
基本上,每个数组中的第一个值将被关联,每个数组的第二个值将相互关联,第三个相互关联,依此类推。
我有一个foreach
循环迭代并使用$result
作为数组键,如下所示:
foreach ($results as $result) {
然后是一个基于所述字符串生成$ order的函数。
然后我试图将每个值关联起来,就像我说的那样:
array('8' => 'value', '8' => 'value', '6' => 'anothervalue', '6' => 'anothervalue');
这是我的代码。
$order = resource_library_apachesolr_resource_type_order($resource_type);
$result['resource_type'] = $resource_type;
$newresults = array($order => $result);
$order
不是迭代的,所以我该如何制作它以便将$order
的迭代值与当前迭代值$result
结合起来?
答案 0 :(得分:0)
好吧,既然你有重复的键,就不能使用 array_combine
你可能需要有点创意。也许转换为字符串并在整数部分之前添加0 ...
实施例
$a1 = array(1,1,2,3,3);
$a2 = array('a', 'b', 'c', 'd', 'e');
$a3 = array();
for ($i=0; $i<count($a1); ++$i) {
$key = (string) $a1[$i];
$val = (String) $a2[$i];
while (isset($a3[$key])) {
$key = "0$key";
}
$a3[$key] = $val;
}
var_dump($a3);
foreach ($a3 as $key => $val) {
$key = (int) $key;
print "$key=>$val<br>";
}
输出:
array (size=5)
1 => string 'a' (length=1)
'01' => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
'03' => string 'e' (length=1)
1=>a
1=>b
2=>c
3=>d
3=>e
答案 1 :(得分:0)
我不知道你为什么需要这个,但是如果我想做那样的事我会做:
$arr = array();
foreach($numbers as $i=>$num){
$arr[$num][] = $strings[$i];
}
并将获得:
array(
1 => array(
a,
b
),
2 => array(
c
),
3 => array(
d,
e
)
)