2016-08-22 3 views
0

Ich habe die folgende Liste, die ich von Android in PHP in diesem Format erhalten:PHP Explode Zahlen in eckigen Klammern

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

Ich mag diese Nummern einzeln zu explodieren, habe ich versucht:

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

erhalte ich die folgende Warnung:

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

Sie können Probleme mit den vorhergehenden Nullen haben, wenn Sie im obigen Beispiel als Zahl anstelle von Text angezeigt werden, berücksichtigen Sie das Umbrechen in einfache Anführungszeichen $ phonenumberlist = ['0761234567', '072999999', '0731111111']; oder hinzufügen Padding (wenn Sie wissen, wie viele Ziffern es sein wird) – happymacarts

+0

Wenn das Beispieldaten ist, meintest du '$ phonenumberlist = '[0761234567, 072999999, 0731111111]';' – AbraCadaver

+0

Ich habe die Elemente aus Android als Zeichenfolge Elemente und nahm die gesamte Liste als String und übergab es an PHP, die die Liste als int erkennt, auch um Ihre Frage zu beantworten, habe ich [int, int, int] ohne das String-Zitat – user3560827

Antwort

1

$phonenumberlist ist bereits ein Array. Es besteht keine Notwendigkeit, es zu explodieren. Durchlaufen Sie es einfach, um die Werte zu reproduzieren. jedoch

You will have an issue with the leading zeros,:

Parse error: Invalid numeric literal

So müssen Sie die Werte in Anführungszeichen ein PHP behandeln sie als Strings zu machen:

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

Demo

+0

Ich habe Hunderte von Telefonnummern, die ich bekomme, ich habe nur 3 als Beispiel verwendet, ich möchte nicht manuell Zitate hinzufügen, da die Liste, die ich bekomme, sich ändern kann. Gibt es also eine Möglichkeit, die Zitate systematisch hinzuzufügen? – user3560827

+0

konvertieren Sie einfach in string strval() http://php.net/manual/en/function.strval.php – happymacarts

0

Sie können die Liste konvertieren wie folgt: -

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

Es wird: -

  1. alle Leerzeichen entfernen
  2. Wrap alle Zahlen mit doppelten Anführungszeichen (wandeln sie Typ string)
  3. die Zeichenfolge Array json_decode mit konvertieren.

[Edit 1] Eine weitere Option: -

$phonenumberlist = '[0761234567, 072999999, 0731111111]'; 
$phonenumberlist = trim(trim($phonenumberlist, '['), ']'); 
$phonenumberlist = explode(', ', $phonenumberlist); 
  1. Schneiden Sie die Klammern
  2. Explode die Zeichenfolge in ein Array

Hoffnung, das hilft.

Verwandte Themen