2016-11-30 54 views
1

這種數組類型可以工作嗎?我有很多領域,我寧願如果我可以跳過falsenull而不是空場。我從CSV文件中得到這個列表,我只需要使用這個數組一次。目前,我得到使用數組中有空項的數組沒有設置爲空或虛假

Parse error: syntax error, unexpected ',', expecting ') 

如果它是不可能對如何更換空字段設置爲null任何建議歡迎:)

$array = array(
array('apples','bananas','figs',,,'apples2'), 
array('lemon',,'bananas3','figs2','apples3',,'apples3'), 
array('apples',,,'bananas','figs',,,,'apples2'), 
... 
); 


foreach($array as $post) { 
    // something once 
} 
+0

如何空字符串' '', '', '',...'? –

+0

在這種情況下,我可以更好地用false或null替換它,但我不知道簡單的替換方法,這就是爲什麼我問:) –

+0

誰在爲你寫這個無效的PHP代碼?一個腳本,另一個人?你的問題很不清楚。 –

回答

1

嘗試,它應該解決這個問題(它可能給你發現錯誤,但不重視):

$str = "array(
array('apples','bananas','figs',,,'apples2'), 
array('lemon',,'bananas3','figs2','apples3',,'apples3'), 
array('apples',,,'bananas','figs',,,,'apples2') 
);"; 

function convert_to_right_array($str) { 
    $points = []; 
    for ($i = 0; $i < strlen($str); $i++) { 
     if ($str[$i] == ',' && $str[$i+1] == ',') { 
      $point = [$i, $i + 1]; 
      $points[] = $point; 
     } 
    } 
    $newStr = ''; 
    $startChar = 0; 
    foreach ($points as $point) { 
     $part = substr($str, $startChar, $point[0] - $startChar); 
     $part = ($part[strlen($part) - 1] == ',' ? $part : $part . ','); 
     $newStr .= $part; 
     $newStr .= 'null'; 
     $startChar = $point[1]; 
    } 
    $newStr .= substr($str, $startChar, strlen($str)); 
    return $newStr; 
} 
0

您可以將數字鍵順序與「間隙」初始化數組:

<?php 
$array = [ 
    ['apples','bananas','figs',5=>'apples2'], 
    ['lemon',2=>'bananas3','figs2','apples3',6=>'apples3'], 
    ['apples',3=>'bananas','figs',8=>'apples2'], 
    //... 
]; 
print_r($array); 

但是,這是一個不同的東西分配一個空的或falsey值的某些鍵。它也不是「更快」,可能難以閱讀,所以很值得懷疑。只有在按鍵序列中需要明確的「空白」時才能執行此操作。如果你想要「空」值,那麼以明確的方式對它們進行編碼。

以上線路的輸出是:

Array 
(
    [0] => Array 
     (
      [0] => apples 
      [1] => bananas 
      [2] => figs 
      [5] => apples2 
     ) 

    [1] => Array 
     (
      [0] => lemon 
      [2] => bananas3 
      [3] => figs2 
      [4] => apples3 
      [6] => apples3 
     ) 

    [2] => Array 
     (
      [0] => apples 
      [3] => bananas 
      [4] => figs 
      [8] => apples2 
     ) 

)