PHP在方形括号中爆炸数字

时间:2016-08-22 18:44:09

标签: php arrays explode

我有以下列表,我以这种格式从Android获得PHP:

//How I get phonenumberlist 
$phonenumberlist = isset($_POST['PhoneNumberList']) ? $_POST['PhoneNumberList'] : '';
//The output of phonenumberlist when I print to text
$phonenumberlist = [0761234567, 072999999, 0731111111];

我想单独爆炸这些数字,我试过:

 $phonenumberlist_exploded = explode(',', $phonenumberlist);
 foreach ($phonenumberlist_exploded as $number)
 {
     echo $number;
 }

我收到以下警告:

Warning: explode() expects parameter 2 to be string, array given in

2 个答案:

答案 0 :(得分:1)

$phonenumberlist已经是一个数组。没有必要爆炸它。只需迭代它就可以回显出值。

然而,

You will have an issue with the leading zeros

  

解析错误:无效的数字文字

因此,您需要将这些值包装在引号中,以使PHP将它们作为字符串处理:

$phonenumberlist = ['0761234567', '072999999', '0731111111'];
foreach($phonenumberlist as $number) {
    echo $number;
}

Demo

答案 1 :(得分:1)

您可以像这样转换列表: -

$phonenumberlist = '[0761234567, 072999999, 0731111111]';
$phonenumberlist = str_replace([' ', '[', ']', ','], ['', '["', '"]', '","'], $phonenumberlist);
$phonenumberlist = json_decode($phonenumberlist, true);

它会: -

  1. 删除所有空格
  2. 用双引号包装所有数字(将它们转换为字符串类型)
  3. 使用json_decode将字符串转换为数组。
  4. [编辑1] 另一种选择: -

    $phonenumberlist = '[0761234567, 072999999, 0731111111]';
    $phonenumberlist = trim(trim($phonenumberlist, '['), ']');
    $phonenumberlist = explode(', ', $phonenumberlist);
    
    1. 修剪括号
    2. 将字符串分解为数组
    3. 希望这有帮助。