web-dev-qa-db-ja.com

配列の最初の要素をPHPの文字列に変換します

PHP配列があり、それを文字列に変換したい。

joinまたはimplodeを使用できることは知っていますが、私の場合、配列には1つの項目しかありません。配列内の値を1つのアイテムのみと組み合わせて使用​​する必要があるのはなぜですか?

この配列は、配列を返すmy PHP関数の出力です:

Array(18 => 'Something');

これを文字列に変換するにはどうすればよいですか?

36
Daric

その配列を文字列に変換する他の方法はありますか?

配列を文字列に変換したくない、配列の唯一の要素の値を取得したい、私はそれを正しく読みます。

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

?>

Array_shiftを使用すると、インデックスについて心配する必要はありません。

[〜#〜] edit [〜#〜]:注意してください、単一の値を返す関数はarray_shiftだけではありません。 array_pop()、current()、end()、reset()、これらはすべてその単一の要素を返します。投稿されたソリューションはすべて機能します。ただし、配列シフトを使用すると、複数の配列がある場合でも、配列のfirst値のみを取得することができます。

36
Berry Langerak

その配列を文字列に変換する他の方法はありますか?

はいあります。 serialize() 。さまざまなデータ型(オブジェクトや配列を含む)を文字列表現に変換できます。この表現は、後で unserialize() にできます。 Array(18 => 'Somthing')などの連想配列をシリアル化すると、キーと値の両方が保持されます。

<?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

PHP文字列配列に配列を作成する簡単な方法は次のとおりです。

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

reset() 関数を使用すると、最初の配列メンバーが返されます。

8
Paolo Stefan

implodeまたはjoin(まったく同じもの)がここで機能します。または、array_popを呼び出して、配列内の唯一の要素の値を取得することもできます。

6
John Hargrove

デバッグを目的として配列を文字列に出力することが目的の場合: print_r() 関数を使用できます。この関数は、式パラメーター(配列)とオプションのブール値戻りパラメーターを受け取ります。通常、この関数は配列をエコーするために使用されますが、戻りパラメーターをtrueに設定すると、配列の印象を返します。

例:

    //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);

これが出力になります。

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

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

)
5
Jonatan Ienco

Print_rを使用し、htmlを解釈して、次のような改行を含む文字列に変換できます。

$arraystring = print_r($your_array, true); 

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

または、これを行うと、多くの配列と変数を混在させることができます

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

For()ループは非常に便利です。次のように、配列の値を別の変数に追加できます。

_<?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
?>
_

このコードでは、$ diziの値とコンマを$ dizinに追加しました。

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

いま

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

文字列ですが、余分なコンマがあります:)

そして最後のカンマsubstr($dizin, 0, -1);を削除しました

出力:

「母」、「父」、「子供」

4
BARIS KURT

PHPで配列を文字列に変換:

  1. PHP join関数を次のように使用します:

    $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;
    

    配列内の項目をコンマで区切って文字列にしたもの:

    4,1,8
    
  2. またはPHP implode関数を次のように使用します:

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

    どの印刷:

    418
    
  3. PHP arrayでキーと値のペアを結合または内包した場合に起こること

    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

空白の問題は配列のエクスポート時にのみ発生するため、他のすべての変数タイプに元のvar_export()を使用できます。この関数はジョブを実行し、外部からは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/en/function.var-export.php#5444

2
ucefkh

PHPの組み込み関数implode(array, separator)を使用します。

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

結果:parth/raja/nikhar

2
Parth Chavda

PHPで配列を文字列に変換:

PHP join関数を次のように使用します。

$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;

配列内の項目をコンマで区切って文字列にしたもの:

4,1,8
1
Sorin Haidau

完全性と単純化のために、次のことは問題ないはずです。

$str = var_export($array, true);

私の場合、それは非常にうまく機能しますが、他の人は空白に問題があるようです。その場合、ucefkhからの回答は、PHPマニュアルのコメントからの回避策を提供します。

0
Levit