ホームページ > バックエンド開発 > PHPチュートリアル > print_r($arr,true) で生成された文字列を配列に復元する方法

print_r($arr,true) で生成された文字列を配列に復元する方法

WBOY
リリース: 2016-06-13 13:25:02
オリジナル
1012 人が閲覧しました

print_r($arr,true) によって生成された文字列を配列に復元する方法
たとえば、次のようになります。
$arr=array('abcd'=>'sdfasdf','bbb'=>) ;' lxg','ccc'=>'bbbbbbbbb');
$str=print_r($rr,true);
$str を配列変数である $arr に変更したいのですが、誰でもできます。



-----解決策-------------------------- ------
それだけです 目的は何ですか? $arr から直接コピーするだけです。
------解決策---------
json_encode、json_decode を使用します。 。
------解決策---------
1次元配列でも処理可能多次元配列は扱うのが非常に困難です。 。 。
------解決策---------

話し合う

接続されたプロジェクトにデータを保存する方法は $str=print_r($rr,true); データベースに保存されている場合、データはすでに存在します。現在は解析することしかできません。

------解決策------------------
最初にコードを投稿します。アルゴリズムの問​​題については別の投稿を開きます

トライ キー ツリー クラス、基本クラス
PHP コード
クラストライ{
  $dict = array();
  保護された $buf = '';
  function set($word, $value='') {
    if(is_array($w​​ord)) foreach($word as $k=>$v) $this->set($k, $v);
    $p =& $this->dict;
    foreach(str_split($word) as $ch) {
        if(! isset($p[$ch])) $p[$ch] = array();
        $p =& $p[$ch];
    }
    $p['val'] = $value;
    $this を返します。
  }
  関数解析($str) {
    $this->doc = $str;
    $this->len = strlen($str);
    $i = 0;
    while($i len) {
        $t = $this->find($this->dict, $i);
        if($t) {
            $i = $t;
            $this->buf = '';
        }else $this->buf .= $this->doc{$i++};
    }
  }
  保護された関数 find(&$p, $i) {
    if($i >= $this->len) $i を返します。
    $t = 0;
    $n = $this->doc{$i};
    if( isset($p[$n]) ) $t = $this->find($p[$n], $i+1);
    if($t) $t を返します。
    if( isset($p['val']) ) {
        $ar =explode(',', $p['val']);
        call_user_func_array( array($this, array_shift($ar)), $ar );
        $i を返します。
    }
    $t を返します。
  }
  関数 __call($method, $param) {
    echo "****n$this->未定義メソッド:$メソッドパラメータ:" . join(',', $param) "<br />n";
  }
}
<br><font color="#e78608">------解決策---------</font><br>
ログイン後にコピー
話し合う

最初にコードを投稿します。アルゴリズムの問​​題については別の投稿を開きます

Trie キー ツリー クラス、基本クラス PHP コード
class Trie {
protected $dict = array () ;
protected $buf = '';
function set($word, $value='') {
if(is_array($w​​ord)) foreach($word as $k=> $v ) $this->……
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート