Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我想将数组_组合应用于不等数组_Php_Arrays - Fatal编程技术网

Php 我想将数组_组合应用于不等数组

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

我想要一个来自两个不同数组的键值对 有两种情况。1两者相等2秒数组比第一个数组大

我的代码是

$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)));