我正在嘗試使用strtr()函式替換 mysql 結果陣列中的引號和其他字符。但我得到了Warning: strtr() expects parameter 1 to be string, array given空值。
這是我的代碼:
while($rows = mysqli_fetch_assoc($list)){
$string_filter = array(';'=>'','['=>'',']'=>'','{'=>'','}'=>'','"'=>'',"'"=>'');
$data[$rows['id']] = strtr($rows,$string_filter);
}
$data是一個陣列,我想洗掉/修剪$string_filter陣列中指定的字符。以下是來自的內容示例 $data:
Array ( [1] => Array ( [id] => 1 [user_id] => 204554 [name] => Rich [group] => PL [ai] => BA [image] => 204554-35849.jpg ) [2] => Array ( [id] => 2 [user_id] => 124534 [name] => James [group] => SS [ai] => IT [image] => 123141-12312.jpg )...
uj5u.com熱心網友回復:
快速提問,您確定這些字符確實存在于您的資料中嗎?因為您要洗掉的字符是當通過 print_r 函式查看陣列時 php 會自動附加到陣列的字符。準確地說,這個說法
print_r(array('key' => 'value'));
將輸出
Array([key] => value)
即使很難,陣列資料本身也沒有實際[或]存在。
在任何情況下,此代碼段都將清除陣列的鍵和值:
$string_filter = array(';'=>'','['=>'',']'=>'','{'=>'','}'=>'','"'=>'',"'"=>'');
while($rows = mysqli_fetch_assoc($list)){
$cleanedrow = [];
foreach($rows as $key => $value) {
$cleanedrow[strtr($key, $string_filter)] = strtr($value, $string_filter);
}
$data[$rows['id']] = $cleanedrow;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/414204.html
標籤:
