PHP で配列と文字列を変換する最も一般的な方法は、explode() 関数と implode() 関数を使用することです。今日、友人がそのような質問をしたので、それを整理して共有します。
これら 2 つの関数を見てみましょう
爆縮機能:
関数 implode を使用して配列を文字列に変換します
分解機能:
関数explodeを使用して文字列を配列に変換します
例1.
今日、友人が PHP に文字列を配列に変換する方法を尋ねる投稿を投稿しているのを目にしました。PHP プログラマーとして、Xinyi の最初の反応は、explode() と implode() という 2 つの関数を思い浮かべることでした。新一も中の関数を使って配列に変換しています。
con[1]=28&selt[1]=1&con[2]=29&selt[2]=4&con[3]=26&selt[3]=4
&con[4]=30&selt[4]=2&con[5]=4&selt[5]=1&con[6]=11&con[7]=12
上記はネチズンが PHP 配列に変換する必要がある文字列です。以下は Xinyi が提供する PHP 変換コードです
コードは次のとおりです |
コードをコピー |
$str = 'con[1]=28&selt[1]=1&con[2]=29&selt[2]=4&con[3]=26&selt[3]=4&con[4]=30&selt[4]=2&con[5]=4&selt [5]=1&con[6]=11&con[7]=12';
$arr = 爆発('&',$str);
$arr2 = 配列();
foreach($arr as $k=>$v){
$arr =explode('=',$v);
$arr2[$k] = $arr[1];
}
print_r($arr2);
?>
//出力
配列
(
[0] => 28
[1] => 1
[2] => 29
[3] => 4
[4] => 26
[5] => 4
[6] => 30
[7] => 2
[8] => 4
[9] => 1
[10] => 11
[11] => 12
)
// 2 番目
$str = 'con[1]=28&selt[1]=1&con[2]=29&selt[2]=4&con[3]=26&selt[3]=4&con[4]=30&selt[4]=2&con[5]=4&selt [5]=1&con[6]=11&con[7]=12';
$arr = 爆発('&',$str);
$arr2 = 配列();
foreach($arr as $k=>$v){
$arr =explode('=',$v);
$arr2[$arr[0]] = $arr[1];
}
print_r($arr2);
?>
//出力
配列
(
[con[1]] => 28
[selt[1]] => 1
[con[2]] => 29
[selt[2]] => 4
[con[3]] => 26
[selt[3]] => 4
[con[4]] => 30
[selt[4]] => 2
[con[5]] => 4
[selt[5]] => 1
[con[6]] => 11
[con[7]] => 12
)
例 2.
上記は 1 次元データのみをサポートしていますが、2 次元または 3 次元データの場合はどうなるでしょうか
コードは次のとおりです
コードをコピー |
//多次元配列内のすべての値を文字列に変換??????》3次元配列までサポート
関数 implodex( $glue, $array, $separator='' ) {
if ( ! is_array( $array ) ) $array を返します
$string = array();
| $カウント = 0;
foreach ( $array as $key => $val ) {
if ( is_array( $val ) ) |
$val = implode( $glue, $val );
if($count == 0){
$string[] = "{$val}";
}その他{
$string[] = "{$glue}{$val}";
}
}
if(empty($separator))$separator = $glue;
return implode( $separator, $string );
}
例 3.
配列を保存用の文字列に変換し、文字列を配列に取得します (シリアル化とシリアル化解除)
以下の例を見てください:
コードは次のとおりです |
コードをコピー |
// $Id: test3.php,v 1.0 2011-6-7 goba Exp $
/**
* PHP ストレージ値をテストします
*
* @作者Lok
*/
$config = 配列 (
'ホスト' => 'ローカルホスト',
'user_name' => 'root',
'パスワード' => '',
'db_name' => 'ecshop',
'charset' => 'utf8',
'remark' => array ('note' => 'パスワードの安全性にご注意ください', 'author' => 'Lok')
);
$str = シリアル化($config);
$arr = unserialize($str);
echo '--------str-------- ';
var_dump($str);
echo ' ------arr---------- ';
var_dump($arr)
?>結果:
----------str----------
string(221) "a:6:{s:4:"ホスト";s:9:"ローカルホスト";
s:9:"ユーザー名";s:4:"ルート";
s:8:"パスワード";s:0:"";
s:7:"db_name";s:8:"ecshop";
s:7:"文字セット";s:4:"utf8";
s:6:"注意";a:2:{s:4:"注意";s:24:"パスワードの安全にご注意ください";
s:6:"著者";s:3:"ロク";}}"
-------arr----------
配列(6) { ["ホスト"]=> 文字列(9) "ローカルホスト"
["user_name"]=> string(4) "root"
["パスワード"]=> 文字列(0) ""
["db_name"]=> string(8) "emoishop"
["charset"]=> string(4) "utf8"
["備考"]=> array(2) { ["note"]=> string(24) "パスワードの安全性に注意してください"
["著者"]=> string(3) "ロク" } }
|
|
http://www.bkjia.com/PHPjc/633057.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633057.html技術記事 PHP で配列と文字列を変換する最も一般的な方法は、explode() 関数と implode() 関数を使用することです。今日、友人がそのような質問をしたのを見かけました...