Php 我想将数组_组合应用于不等数组
我想要一个来自两个不同数组的键值对 有两种情况。1两者相等2秒数组比第一个数组大 我的代码是Php 我想将数组_组合应用于不等数组,php,arrays,Php,Arrays,我想要一个来自两个不同数组的键值对 有两种情况。1两者相等2秒数组比第一个数组大 我的代码是 $array1=array("anu","jinu"); $array2=array("1","2","0"); 我想做一双像这样的 anu-1 jinu-2 如果$array1元素已完成,则不必与$array2配对 从这个例子中,我们可以忽略$array2中的第三个元素 我尝试应用array_combine,但它不适用于两个不等的数组 如果有人知道解决方案,请帮我试试这个 $ar
$array1=array("anu","jinu");
$array2=array("1","2","0");
我想做一双像这样的
anu-1
jinu-2
如果$array1元素已完成,则不必与$array2配对
从这个例子中,我们可以忽略$array2中的第三个元素
我尝试应用array_combine,但它不适用于两个不等的数组
如果有人知道解决方案,请帮我试试这个
$array1=array("anu","jinu");
$array2=array("1","2","0");
foreach($array1 as $key => $value){
$newarray[$array2[$key]] = $value;
}
print_r($newarray);
试试这个
$array1=array("anu","jinu");
$array2=array("1","2","0");
foreach($array1 as $key => $value){
$newarray[$array2[$key]] = $value;
}
print_r($newarray);
您可以使用下面的代码输出您想要的
$arr1=array("anu","jinu");
$arr2=array("1","2","0");
$newArr = array();
foreach($arr1 as $key => $value){
$newArr[$value] = $arr2[$key];
}
echo "<pre>";print_r($newArr);
您可以使用下面的代码输出您想要的
$arr1=array("anu","jinu");
$arr2=array("1","2","0");
$newArr = array();
foreach($arr1 as $key => $value){
$newArr[$value] = $arr2[$key];
}
echo "<pre>";print_r($newArr);
如果不需要任何循环,只需使用array\u combine即可。尝试使用数组_切片执行以下解决方案 注意:它将检查两个数组。并从两个数组中取较短数组的长度 编辑 如果它的修正值总是array2长度等于或大于array1,那么您可以忽略If-elseif语句。为此,请尝试以下代码
// Slice array2 to match count with array1
$slice = array_slice($array2, 0, count($array1));
// Combine using array1 as key, sliced array as value
$combine = array_combine($array1, $slice);
print_r($combine); // Print result
如果不需要任何循环,只需使用array\u combine即可。尝试使用数组_切片执行以下解决方案 注意:它将检查两个数组。并从两个数组中取较短数组的长度 编辑 如果它的修正值总是array2长度等于或大于array1,那么您可以忽略If-elseif语句。为此,请尝试以下代码
// Slice array2 to match count with array1
$slice = array_slice($array2, 0, count($array1));
// Combine using array1 as key, sliced array as value
$combine = array_combine($array1, $slice);
print_r($combine); // Print result
使用及
使用及
代码:
或
任一输出:
foreach($array1 as $k=>$v){
$result[$v]=$array2[$k];
}
var_export($result);
编辑:
OP表示,第二个阵列将始终更大,因此,以下是更精简的方法:
var_export(array_combine($array1,array_slice($array2,0,sizeof($array1))));
及
及
代码:
或
任一输出:
foreach($array1 as $k=>$v){
$result[$v]=$array2[$k];
}
var_export($result);
编辑:
OP表示,第二个阵列将始终更大,因此,以下是更精简的方法:
var_export(array_combine($array1,array_slice($array2,0,sizeof($array1))));
及
及
你能告诉我else if语句对array_slice有什么作用吗?它用于检查数组的长度如果array 1较大,那么它将只使用第二个数组的等效长度数组,反之亦然。你能告诉我else if语句对array_slice有什么作用吗?它用于检查数组的长度如果array 1较大,那么它将只使用第二个数组的等效长度数组等效长度数组,反之亦然。如何知道哪个数组更长?只是猜测和希望?选择错误的元素,您将尝试访问不存在的元素:@user7441072当大小以另一种方式不平衡时,此答案将引起注意。@mickmackusa是的,你是对的。但在我的问题中,第二个数组总是大的,或者两者相等。@user7441072重要信息应该在你的问题中。如果这是真的,那么你应该把绿色的蜱虫奖励给Sachin、Arun或Erwin@mickmackusaB德赛在每一个案例中都解决了这个问题,并用演示进行了解释。这就是我给他绿色记号的原因你怎么知道哪个数组更长?只是猜测和希望?选择错误的元素,您将尝试访问不存在的元素:@user7441072当大小以另一种方式不平衡时,此答案将引起注意。@mickmackusa是的,你是对的。但在我的问题中,第二个数组总是大的,或者两者相等。@user7441072重要信息应该在你的问题中。如果这是真的,那么你应该把绿色的蜱虫奖励给Sachin、Arun或Erwin@mickmackusaB德赛在每一个案例中都解决了这个问题,并用演示进行了解释。这就是我给他绿色记号的原因你怎么知道哪个数组更长?只是猜测和希望?选择错误的元素,您将尝试访问不存在的元素:@user7441072当大小不平衡时,这个答案会引起注意。这里我假设您总是更喜欢使用$array1。如果不是这样,那么您可以使用php的count函数,并根据该函数使用array\u slice函数,如何知道哪个数组更长?只是猜测和希望?选择错误的元素,您将尝试访问不存在的元素:@user7441072当大小不平衡时,这个答案会引起注意。这里我假设您总是更喜欢使用$array1。如果不是这样,那么您可以使用php的count函数,并根据该函数使用array\u slice函数,如何知道哪个数组更长?只是猜测和希望?挑错一个,你会吐出来的如何知道哪个阵列更长?只是猜测和希望?挑错一个,你会吐出来的@我也看到了,但不太明白,这就是为什么问的原因没关系。将来,如果你发现一个重复的或接近重复的对你没有帮助,你应该在你的问题中列出它。这向志愿者证明你在研究这个问题上付出了努力。好消息是,这个更新的页面提供了比那个页面更广泛的正确答案。请更新您的问题,说明$array2永远不会短于$array1。@mickmackusa更新在仔细阅读我的重复链接后,我承认该页面是一个垃圾重复链接。这些更合适:&如果有的话
ne有超能力用这些新链接更新我的结尾,请帮我一个忙,因为我不能这么做。@mickmackusa我也看到了,但不太明白,这就是为什么问的原因:没关系。将来,如果你发现一个重复的或接近重复的对你没有帮助,你应该在你的问题中列出它。这向志愿者证明你在研究这个问题上付出了努力。好消息是,这个更新的页面提供了比那个页面更广泛的正确答案。请更新您的问题,说明$array2永远不会短于$array1。@mickmackusa更新在仔细阅读我的重复链接后,我承认该页面是一个垃圾重复链接。这些更适合:&如果有人有超能力用这些新链接更新我的闭包,请帮我个忙,因为我不能这样做。
var_export(array_combine($array1,array_intersect_key($array2,$array1)));