Balaji P
Balaji P

Reputation: 21

How to fill a empty value in KEY=> VALUE for array_combine in php

I wish to make Key and Value combining with 2 arrays, but both arrays are not equal.

$array1 = array("1","2","3","4","5");
$array2 = array("apple","banana","","dog","");
$key_value = array_combine($array1,$array2);

The output is:

array_combine(): Both parameters should have an equal number of elements

But I need to below output be like

print_r($key_value);
array(5) { 
          [1]=> string(5) "apple" 
          [2]=> string(6) "banana" 
          [3]=> string(8) "No Value" 
          [4]=> string(3) "dog" 
          [5]=> string(8) "No Value" 
         }

How can do this if null, insert "no value" text.

Upvotes: 0

Views: 861

Answers (2)

Death-is-the-real-truth
Death-is-the-real-truth

Reputation: 72269

use array_map() and array_combine()

<?php

$array1 = array("1","2","3","4","5");
$array2 = array("apple","banana","","dog","");

 $array2 = array_map(function($v){
        return (empty($v)) ? "No Value" : $v;
    },$array2);

$key_value = array_combine($array1,$array2);
print_r($key_value);

https://3v4l.org/CY4ku

Upvotes: 0

Aksen P
Aksen P

Reputation: 4599

You can do it via foreach loop:

$res = [];
foreach($array1 as $ind=>$num){
    $res[$num] = $array2[$ind] === "" ? "No Value" : $array2[$ind]; 
}

print_r($res);

Output:

Array
(
    [1] => apple
    [2] => banana
    [3] => No Value
    [4] => dog
    [5] => No Value
)

Demo

Upvotes: 1

Related Questions