2017-02-17 155 views
-4

我有一个具有空键值的多维数组。如何将null替换为多维数组php中的空字符串?我的数组是在多维数组中使用空字符串值替换空值php

"result": [ 
    { 
     "id": "1", 
     "first_name": "Kishan", 
     "last_name": "Patel", 
     "profile_picture": null, 
     "email": "[email protected]", 
     "birthdate": "1992-07-10", 
     "gender": "male", 
     "nickname": "KK", 
     "town": null, 
     "state": "58", 
     "bio": "123", 
     "zipcode": "395006", 
     "radius": "12356", 
     "favroiteteam": "2", 
     "latitude": "1.25456", 
     "longitude": "4.5658787", 
     "message_enable": "0", 
     "ratting_enable": "0", 
     "add_friend_enable": "0", 
     "interested_in": null, 
     "user_sport": [ 
     { 
      "sport": { 
      "id": "3", 
      "name": "Basketball", 
      "image": "", 
      "no_of_player": "9", 
      "is_active": "1" 
      }, 
      "sportPosition": { 
      "id": "1", 
      "sport_id": "3", 
      "position_name": "Point Guard" 
      }, 
      "skill_level": { 
      "id": "1", 
      "name": "Novice" 
      } 
     }, 
     { 
      "sport": { 
      "id": "2", 
      "name": "Baseball", 
      "image": "", 
      "no_of_player": "10", 
      "is_active": "1" 
      }, 
      "sportPosition": { 
      "id": "6", 
      "sport_id": "2", 
      "position_name": "Pitcher" 
      }, 
      "skill_level": { 
      "id": "3", 
      "name": "Advanced" 
      } 
     }, 
     { 
      "sport": { 
      "id": "8", 
      "name": "Roller Hockey", 
      "image": "", 
      "no_of_player": "0", 
      "is_active": "1" 
      }, 
      "sportPosition": { 
      "id": "15", 
      "sport_id": "8", 
      "position_name": "Forward" 
      }, 
      "skill_level": { 
      "id": "1", 
      "name": "Novice" 
      } 
     } 
     ] 
    } 
    ] 
+0

在使用这个数组,你只写了如果条件.. – Sona

回答

-1

简单地讲一个循环,并检查是否为空用foreach

foreach ($array as $key => $value) { 
    if (is_null($value)) $array[$key] = ""; 
} 
0

@Kishan Kikani您不能替换为null,“”,因为这两个考虑为空值,在输出的阵中还有将是空值在空的地方或“”你要分配的东西来取代你的价值在上述阵列像下面你有两种方式(你和我),你可以这样做:

<?php 
$result = array("result"=> 
       array(
        "id"=> "1", 
        "first_name"=> "Kishan", 
        "last_name"=> "Patel", 
        "profile_picture"=> null, 
        "email"=> "[email protected]", 
        "birthdate"=> "1992-07-10", 
        "gender"=> "male", 
        "nickname"=> "KK", 
        "town"=> null, 
        "state"=> "58", 
        "bio"=> "123", 
        "zipcode"=> "395006", 
        "radius"=> "12356", 
        "favroiteteam"=> "2", 
        "latitude"=> "1.25456", 
        "longitude"=> "4.5658787", 
        "message_enable"=> "0", 
        "ratting_enable"=> "0", 
        "add_friend_enable"=> "0", 
        "interested_in"=> null, 
        "user_sport"=> 
        array(
         "sport"=> array(
         "id"=> "3", 
         "name"=> "Basketball", 
         "image"=> "", 
         "no_of_player"=> "9", 
         "is_active"=> "1" 
        ), 
         "sportPosition"=> array(
         "id"=> "1", 
         "sport_id"=> "3", 
         "position_name"=> "Point Guard" 
        ), 
         "skill_level"=> array(
         "id"=> "1", 
         "name"=> "Novice" 
        ) 
        ), 
        array(
         "sport"=> array(
         "id"=> "2", 
         "name"=> "Baseball", 
         "image"=> "", 
         "no_of_player"=> "10", 
         "is_active"=> "1" 
        ), 
         "sportPosition"=> array(
         "id"=> "6", 
         "sport_id"=> "2", 
         "position_name"=> "Pitcher" 
        ), 
         "skill_level"=> array(
         "id"=> "3", 
         "name"=> "Advanced" 
        ) 
        ), 
        array(
         "sport"=> array(
         "id"=> "8", 
         "name"=> "Roller Hockey", 
         "image"=> "", 
         "no_of_player"=> "0", 
         "is_active"=> "1" 
        ), 
         "sportPosition"=> array(
         "id"=> "15", 
         "sport_id"=> "8", 
         "position_name"=> "Forward" 
        ), 
         "skill_level"=> array(
         "id"=> "1", 
         "name"=> "Novice" 
        ) 
        ) 
       ) 
      ); 
echo "<pre>"; 
print_r($result); // BEFORE 


foreach($result as $rsKey => $rs){ 
    foreach($rs as $key => $value){ 
     if(is_null($value)){ 
      $result[$rsKey][$key] = ""; 
     } 
    } 
} 
echo "<pre>"; 
print_r($result); // after replace only null to "" but there will be a empty space in the values 



foreach($result as $rsKey => $rs){ 
    foreach($rs as $key => $value){ 
     if(is_array($value)){ 
      foreach ($value as $k => $v) { 
       foreach ($v as $k1 => $v1) { 
        if(empty($v1)){ 
         $result[$rsKey][$key][$k][$k1] = "level2"; 
        } 
       } 
      } 
     } 
     else{ 
      if(is_null($value)){ 
       $result[$rsKey][$key] = "level1"; 
      } 
     } 
    } 
} 
echo "<pre>"; 
print_r($result); // after replace whole array empty values 

试你想要的任何一个(Y)

0
$arr = array(
      "key1"=>"value1", 
      "key2"=>null, 
      "key3"=>array(
       "subkey1"=>null, 
       "subkey2"=>"subvalue2"), 
      "key4"=>null); 

    echo json_encode(replace_null_with_empty_string($arr)); 

    function replace_null_with_empty_string($array) 
    { 
     foreach ($array as $key => $value) 
     { 
      if(is_array($value)) 
       $array[$key] = replace_null_with_empty_string($value); 
      else 
      { 
       if (is_null($value)) 
        $array[$key] = ""; 
      } 
     } 
     return $array; 
    } 
+0

请尽量避免刚刚倾倒的代码作为一个答案,并试图解释它做什么,以及为什么。对于那些没有相关编码经验的人来说,你的代码可能并不明显。请修改您的答案,以包含[澄清,上下文,并尝试在答案中提及任何限制,假设或简化。](https://stackoverflow.com/help/how-to-answer) –