wake-up-neo.com

Konvertieren Sie das erste Element eines Arrays in einen String in PHP

Ich habe ein PHP - Array und möchte es in einen String konvertieren. 

Ich weiß, dass ich join oder implode verwenden kann, aber in meinem Fall hat array nur ein Element. Warum muss ich Kombinationswerte in einem Array mit nur einem Element verwenden?

Dieses Array ist die Ausgabe meiner PHP - Funktion, die ein Array zurückgibt:

Array(18 => 'Something');

Wie konvertiere ich das in einen String?

36
Daric

Gibt es eine andere Möglichkeit, dieses Array in einen String zu konvertieren?

Sie möchten das Array nicht in eine Zeichenfolge konvertieren, sondern den Wert des einzigen Elements des Arrays, wenn ich es richtig gelesen habe.

<?php
  $foo = array( 18 => 'Something' );
  $value = array_shift( $foo );
  echo $value; // 'Something'.

?>

Bei der Verwendung von array_shift müssen Sie sich nicht um den Index kümmern.

EDIT: Allerdings ist array_shift nicht die einzige Funktion, die einen einzelnen Wert zurückgibt. array_pop (), current (), end (), reset (), alle geben dieses eine Element zurück. Alle veröffentlichten Lösungen funktionieren. Wenn Sie jedoch die Array-Verschiebung verwenden, können Sie sicher sein, dass Sie immer nur den first - Wert des Arrays erhalten, auch wenn mehrere vorhanden sind.

36
Berry Langerak

Gibt es eine andere Möglichkeit, das zu konvertieren Array in einen String?

Ja da ist. serialize() . Es kann verschiedene Datentypen (einschließlich Objekt und Arrays) in eine String-Darstellung konvertieren, die Sie später unserialize() können. Die Serialisierung eines assoziativen Arrays wie Array(18 => 'Somthing') behält sowohl Schlüssel als auch Werte bei:

<?php
$a = array(18 => 'Something');
echo serialize($a);                                   // a:1:{i:18;s:9:"Something";}
var_dump(unserialize('a:1:{i:18;s:9:"Something";}')); // array(1) {
                                                      //   [18]=>
                                                      //   string(9) "Something"
                                                      // }
28
Salman A

Ein einfaches Verfahren zum Erstellen eines Arrays zu einem PHP - Stringarray ist:

<?PHP
    $array = array("firstname"=>"John", "lastname"=>"doe");
    $json = json_encode($array);
    $phpStringArray = str_replace(array("{", "}", ":"), 
                                  array("array(", "}", "=>"), $json);
    echo phpStringArray;
?>
11
Sven Simon

Sie können die Funktion reset () verwenden. Das erste Arraymitglied wird zurückgegeben.

8
Paolo Stefan

implode oder join (sie sind genau dasselbe) funktionieren hier. Alternativ können Sie einfach array_pop aufrufen und den Wert des einzigen Elements im Array abrufen.

6
John Hargrove

Wenn Ihr Ziel die Ausgabe Ihres Arrays in eine Zeichenfolge zum Debuggen ist: Sie können die Funktion print_r () verwenden, die einen Ausdrucksparameter (Ihr Array) und einen optionalen booleschen Rückgabeparameter empfängt. Normalerweise wird die Funktion zum Echo des Arrays verwendet. Wenn Sie jedoch den Rückgabeparameter auf true setzen, wird die Array-Impression zurückgegeben.

Beispiel:

    //We create a 2-dimension Array as an example
    $ProductsArray = array();

    $row_array['Qty'] = 20;
    $row_array['Product'] = "Cars";

    array_Push($ProductsArray,$row_array);

    $row_array2['Qty'] = 30;
    $row_array2['Product'] = "Wheels";

    array_Push($ProductsArray,$row_array2);

    //We save the Array impression into a variable using the print_r function
    $ArrayString = print_r($ProductsArray, 1);

    //You can echo the string
    echo $ArrayString;

    //or Log the string into a Log file
    $date = date("Y-m-d H:i:s", time());
    $LogFile = "Log.txt";
    $fh = fopen($LogFile, 'a') or die("can't open file");
    $stringData = "--".$date."\n".$ArrayString."\n";
    fwrite($fh, $stringData);
    fclose($fh);

Dies wird die Ausgabe sein:

Array
(
    [0] => Array
        (
            [Qty] => 20
            [Product] => Cars
        )

    [1] => Array
        (
            [Qty] => 30
            [Product] => Wheels
        )

)
5
Jonatan Ienco

Sie könnten print_r und html interpretieren, um es in einen String mit Zeilenumbrüchen wie folgt zu konvertieren:

$arraystring = print_r($your_array, true); 

$arraystring = '<pre>'.print_r($your_array, true).'</pre>';

Oder Sie könnten viele Arrays und Vars mischen, wenn Sie dies tun

ob_start();
print_r($var1);
print_r($arr1);
echo "blah blah";
print_r($var2);
print_r($var1);
$your_string_var = ob_get_clean();
4
mexican_75

Eine For()-Schleife ist sehr nützlich. Sie können den Wert Ihres Arrays einer anderen Variablen wie folgt hinzufügen:

<?php
    $dizi=array('mother','father','child'); //This is array

    $sayi=count($dizi);
    for ($i=0; $i<$sayi; $i++) {
        $dizin.=("'$dizi[$i]',"); //Now it is string...
    }
         echo substr($dizin,0,-1); //Write it like string :D
?>

In diesem Code haben wir $ dizis Werte und Kommas zu $ ​​dizin hinzugefügt:

$dizin.=("'$dizi[$i]',");

Jetzt

$dizin = 'mother', 'father', 'child',

Es ist eine Zeichenfolge, aber es hat ein zusätzliches Komma :)

Und dann haben wir das letzte Komma gelöscht, substr($dizin, 0, -1);

Ausgabe:

'Mutter', 'Vater', 'Kind'

4
BARIS KURT

Konvertiere ein Array in einen String in PHP:

  1. Verwenden Sie die Funktion PHP join wie folgt:

    $my_array = array(4, 1, 8);
    
    print_r($my_array);
    Array
    (
        [0] => 4
        [1] => 1
        [2] => 8
    )
    
    $result_string = join(',', $my_array);
    echo $result_string;
    

    Welches die Elemente im Array durch Kommas in eine Zeichenfolge begrenzt:

    4,1,8
    
  2. Oder verwenden Sie die Funktion PHP implode wie folgt:

    $my_array = array(4, 1, 8);
    echo implode($my_array);
    

    Welche drucke:

    418
    
  3. Folgendes passiert, wenn Sie Schlüsselwertpaare in einem PHP - Array zusammenfügen oder implodieren

    php> $keyvalues = array();
    
    php> $keyvalues['foo'] = "bar";
    
    php> $keyvalues['pyramid'] = "power";
    
    php> print_r($keyvalues);
    Array
    (
        [foo] => bar
        [pyramid] => power
    )
    
    php> echo join(',', $keyvalues);
    bar,power
    php> echo implode($keyvalues);
    barpower
    php>
    
2
Eric Leschinski

Da die Ausgabe von Whitespace nur beim Exportieren von Arrays auftritt, können Sie das ursprüngliche var_export () für alle anderen Variablentypen verwenden. Diese Funktion erledigt den Job und funktioniert von außen genauso wie var_export ().

<?php

function var_export_min($var, $return = false) {
    if (is_array($var)) {
        $toImplode = array();
        foreach ($var as $key => $value) {
            $toImplode[] = var_export($key, true).'=>'.var_export_min($value, true);
        }
        $code = 'array('.implode(',', $toImplode).')';
        if ($return) return $code;
        else echo $code;
    } else {
        return var_export($var, $return);
    }
}

?>

http://www.php.net/manual/de/function.var-export.php#54440

2
ucefkh

Verwenden Sie die eingebaute Funktion in PHP, implode(array, separator):

<?php
    $ar = array("parth","raja","nikhar");
    echo implode($ar,"/");
?>

Ergebnis: parth/raja/nikhar

2
Parth Chavda

Konvertiere ein Array in einen String in PHP:  

Verwenden Sie die Funktion PHP join wie folgt:

$my_array = array(4,1,8);

print_r($my_array);
Array
(
    [0] => 4
    [1] => 1
    [2] => 8
)

$result_string = join(',' , $my_array);
echo $result_string;

Welches die Elemente im Array durch Kommas in eine Zeichenfolge begrenzt:

4,1,8
1
Sorin Haidau

Der Vollständigkeit und Einfachheit halber sollte Folgendes in Ordnung sein:

$str = var_export($array, true);

In meinem Fall macht das die Sache ganz gut, aber andere scheinen Probleme mit dem Leerzeichen zu haben. In diesem Fall bietet die Antwort aus ucefkh eine Problemumgehung aus einem Kommentar im Handbuch PHP.

0
Levit