2011-12-03 6 views
1

私はフルネームとそれに関連付けられたURI/URLをそれぞれの配列に抽出するために必要な以下の文字列を持っています。それは典型的なデータのように構築されていないので、進める方法がわかりません。私は最初に爆発を考えましたが、最初は不要なデータがありますので、まずデータを整理する方法が必要ですか?しかし、おそらく私のコードが効率的なように、1つまたは2つのステップ/ステージでこれを行う効率的な方法がありますか?いくつかの研究の後、私はmb_split()を考えていますが、私は正規表現を構築することに非常に貧弱です。ここでいくつかの方向が必要です...この文字列をどのように処理すれば、各エンティティのフルネームと関連するjpg URLだけを含む配列になりますか?

私の例では、最初の "迷惑メール"の後に現れるデータパターンを見ることができます。形成する各グループの3番目の「行」は、私が求めている肉(別名データ)の場所です。最初のグループの最初の文字列は、この例の3行目にある「Amanda Grider」です。これは、私が各グループから探している返されたデータの例における完全な名前とその位置です。その行にはさらに、jpgイメージのURI/URLがあります。これは、私が探している2番目のデータです。私が心配している限り、他のすべてはゴミで投げられることがあります。

このチャンクを処理して値を取得する、最も高速で効率的な方法は何ですか?私はこれを自分の仕事に使うことができますか?

(ところで、私は手次のコードは、実際には、ノーリターンの文字が含まれていない、より容易に理解データを作るために改行文字を追加し、それが一つの大きな文字列として提示している。)

[ 
    [ 
    "tsg.lac", 
    [], 
    [ 
     [ 
      [null,null,"100829745667958569941"], 
      [], 
      ["Amanda Grider",null,null,null,"4b3347c83f0a1","8nwbFHob02C8CmojHF","BoZrAHx801Rz8o3h8k",null,"https://lh3.googleusercontent.com/-zIK8ZN_ZDt8/AAAAAAAAAAI/AAAAAAAAAAA/fsiR92bLDlU/photo.jpg",null,1,"Marina del Rey, CA",null,null,null,0,null,[],null,null,null,""], 
      [] 
     ],[ 
      [null,null,"115014076410206782853"], 
      [], 
      ["VWvortex",null,null,null,"4b13c6667b3c9","JKCGFo_CApJ","JKCGFo_CApJ",null,"//lh6.googleusercontent.com/-X_wSt8nwpOU/AAAAAAAAAAI/AAAAAAAAACQ/R_jcIPcegbM/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://WWW.VWVORTEX.COM",null,null,3],null,null,"World's largest Volkswagen enthusiast community and blog."], 
      [] 
     ],[ 
      [null,null,"102608018926739248428"], 
      [], 
      ["Wale",null,null,null,"4b1ded89a3721","JmRxAk","JmRxAk",null,"//lh4.googleusercontent.com/-xyeyjc4Avow/AAAAAAAAAAI/AAAAAAAAABU/SY-9EKeDnhw/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://www.ralphfolarin.com/",null,null,6],null,null,""], 
      [] 
     ],[ 
      [null,null,"114161985228080012446"], 
      [], 
      ["The Opus Rhythm Music Blog",null,null,null,"4b177a5207d09","IIJj03C4Iog3HIKMIIJz02xEHnRf01ZxFnB","IIJj03C4Iog3HIKMIIJz02xEHnRf01ZxFnB",null,"//lh5.googleusercontent.com/-4QRl1IgDCLU/AAAAAAAAAAI/AAAAAAAAABI/pVoxTQ7SH8Y/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://www.bacchusentertainment.com",null,null,6],null,null,"We are the team music blog of Bacchus Entertainment"], 
      [] 
     ],[ 
      [null,null,"114645267718535118440"], 
      [], 
      ["Jalopnik",null,null,null,"4b12fccb6f809","DHRxFoK0Cng","DHRxFoK0Cng",null,"//lh6.googleusercontent.com/-_M1nn9mKyY8/AAAAAAAAAAI/AAAAAAAAABI/aXhkyN7cuuk/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://jalopnik.com/",null,null,3],null,null,"Jalopnik: Drive Free or Die"], 
      [] 
     ],[ 
      [null,null,"105503202599719238167"], 
      [], 
      ["Audi USA",null,null,null,"4b14db7535e99","8owhCkGEHmR","8owhCkGEHmR",null,"//lh3.googleusercontent.com/-mHHyVhWfARE/AAAAAAAAAAI/AAAAAAAAAC4/Qn0lYbilT8M/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://www.audiusa.com","(800) 822-2834",null,3],null,null,"Progress is social media, and listening, and fans, and Google+. So here we are."], 
      [] 
     ],[ 
      [null,null,"104108787932235341403"], 
      [], 
      ["Audi Sport",null,null,null,"4b23243c864b1","8owhCkGAGJC8IF","8owhCkGAGJC8IF",null,"//lh4.googleusercontent.com/-jGBNL9dbwYs/AAAAAAAAAAI/AAAAAAAAAUA/pgsAqvaX8XM/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://www.facebook.com/AudiSportPage",null,null,6],null,null,"Unofficial Audi Sport fan page, not affiliated with or endorsed by Audi AG."], 
      [] 
     ],[ 
      [null,null,"106689856342933829975"], 
      [], 
      ["Volkswagen USA",null,null,null,"4b20ca9b7fa69","JJBxDohI8nBjFFGEHmR","JJBxDohI8nBjFFGEHmR",null,"//lh5.googleusercontent.com/-i3MO9CsymQ8/AAAAAAAAAAI/AAAAAAAAAB4/ddmTW3D8s20/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://www.vw.com","(800) 822-8987",null,3],null,null,"Take a look around, kick the tires, ask questions and get to know our community."], 
      [] 
     ],[ 
      [null,null,"115425298803319911308"], 
      [], 
      ["Internal Frequency",null,null,null,"4b177b6d46119","Co4CAo_08no3BJZjGowjFHhM","Co4CAo_08no3BJZjGowjFHhM",null,"//lh4.googleusercontent.com/-lZeecuGL3Ig/AAAAAAAAAAI/AAAAAAAAABk/Afv5eGuBzUM/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://www.internalfrequency.com",null,null,6],null,null,"The 1st hand ups-and-downs of the CEO of an up-and-coming entertainment label in Southern California"], 
      [] 
     ],[ 
      [null,null,"101358795463286919640"], 
      [], 
      ["Music Think Tank",null,null,null,"4b1947fea8251","EoxACmg3IIJrFIg3IHS0Dk","EoxACmg3IIJrFIg3IHS0Dk",null,"//lh4.googleusercontent.com/-B2KTfl4uNyE/AAAAAAAAAAI/AAAAAAAAACM/N955ZhPV08E/photo.jpg",null,1,null,null,null,null,0,null,[],[null,"http://www.musicthinktank.com",null,null,6],null,null,"Where the music industry speaks out loud. Create the Chaos."], 
      [] 
     ] 
    ] 
    ] 
] 

UPDATE:

私は何かを見つけて、データが実際に有効なJSONであることを発見しましたが、デコードされて戻ってきましたが、まだ奇妙で、非常に複雑です(必要以上に複雑すぎます)。 json_decode()を使用してデータを初期化し、変数$ jsondataに割り当てます。私は追加すると、その直後に、次の

Array ( 
[0] => Array (
    [0] => tsg.lac [1] => Array() [2] => Array (
     [0] => Array (
      [0] => Array (
       [0] => [1] => [2] => 100829745667958569941) 
      [1] => Array () 
      [2] => Array (
       [0] => Amanda Grider [1] => [2] => [3] => [4] => 4b33843806e03 [5] => 8nwbFHob02C8CmojHF [6] => BoZrAHx801Rz8o3h8k [7] => [8] => https://lh3.googleusercontent.com/-zIK8ZN_ZDt8/AAAAAAAAAAI/AAAAAAAAAAA/fsiR92bLDlU/photo.jpg [9] => [10] => 1 [11] => Marina del Rey, CA [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => [19] => [20] => [21] =>) 
      [3] => Array () 
     ) 
     [1] => Array (
      [0] => Array (
       [0] => [1] => [2] => 115014076410206782853) 
      [1] => Array () 
      [2] => Array (
       [0] => VWvortex [1] => [2] => [3] => [4] => 4b13c6667b3c9 [5] => JKCGFo_CApJ [6] => JKCGFo_CApJ [7] => [8] => //lh6.googleusercontent.com/-X_wSt8nwpOU/AAAAAAAAAAI/AAAAAAAAACQ/R_jcIPcegbM/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://WWW.VWVORTEX.COM [2] => [3] => [4] => 3) [19] => [20] => [21] => World's largest Volkswagen enthusiast community and blog.) 
      [3] => Array () 
     ) 
     [2] => Array (
      [0] => Array (
       [0] => [1] => [2] => 102608018926739248428) 
      [1] => Array () 
      [2] => Array (
       [0] => Wale [1] => [2] => [3] => [4] => 4b1ded89a3721 [5] => JmRxAk [6] => JmRxAk [7] => [8] => //lh4.googleusercontent.com/-xyeyjc4Avow/AAAAAAAAAAI/AAAAAAAAABU/SY-9EKeDnhw/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://www.ralphfolarin.com/ [2] => [3] => [4] => 6) [19] => [20] => [21] =>) 
      [3] => Array () 
     ) 
     [3] => Array (
      [0] => Array (
       [0] => [1] => [2] => 114161985228080012446) 
      [1] => Array () 
      [2] => Array ( 
       [0] => The Opus Rhythm Music Blog [1] => [2] => [3] => [4] => 4b177a5207d09 [5] => IIJj03C4Iog3HIKMIIJz02xEHnRf01ZxFnB [6] => IIJj03C4Iog3HIKMIIJz02xEHnRf01ZxFnB [7] => [8] => //lh5.googleusercontent.com/-4QRl1IgDCLU/AAAAAAAAAAI/AAAAAAAAABI/pVoxTQ7SH8Y/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://www.bacchusentertainment.com [2] => [3] => [4] => 6) [19] => [20] => [21] => We are the team music blog of Bacchus Entertainment) 
      [3] => Array () 
     ) 
     [4] => Array (
      [0] => Array (
       [0] => [1] => [2] => 114645267718535118440) 
      [1] => Array () 
      [2] => Array (
       [0] => Jalopnik [1] => [2] => [3] => [4] => 4b12fccb6f809 [5] => DHRxFoK0Cng [6] => DHRxFoK0Cng [7] => [8] => //lh6.googleusercontent.com/-_M1nn9mKyY8/AAAAAAAAAAI/AAAAAAAAABI/aXhkyN7cuuk/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://jalopnik.com/ [2] => [3] => [4] => 3) [19] => [20] => [21] => Jalopnik: Drive Free or Die) 
      [3] => Array () 
     ) 
     [5] => Array (
      [0] => Array (
       [0] => [1] => [2] => 105503202599719238167) 
      [1] => Array () 
      [2] => Array (
       [0] => Audi USA [1] => [2] => [3] => [4] => 4b14db7535e99 [5] => 8owhCkGEHmR [6] => 8owhCkGEHmR [7] => [8] => //lh3.googleusercontent.com/-mHHyVhWfARE/AAAAAAAAAAI/AAAAAAAAAC4/Qn0lYbilT8M/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://www.audiusa.com [2] => (800) 822-2834 [3] => [4] => 3) [19] => [20] => [21] => Progress is social media, and listening, and fans, and Google+. So here we are.) 
      [3] => Array () 
     ) 
     [6] => Array (
      [0] => Array (
       [0] => [1] => [2] => 104108787932235341403) 
      [1] => Array () 
      [2] => Array (
       [0] => Audi Sport [1] => [2] => [3] => [4] => 4b23243c864b1 [5] => 8owhCkGAGJC8IF [6] => 8owhCkGAGJC8IF [7] => [8] => //lh4.googleusercontent.com/-jGBNL9dbwYs/AAAAAAAAAAI/AAAAAAAAAUA/pgsAqvaX8XM/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://www.facebook.com/AudiSportPage [2] => [3] => [4] => 6) [19] => [20] => [21] => Unofficial Audi Sport fan page, not affiliated with or endorsed by Audi AG.) 
      [3] => Array () 
     ) 
     [7] => Array (
      [0] => Array (
       [0] => [1] => [2] => 106689856342933829975) 
      [1] => Array () 
      [2] => Array (
       [0] => Volkswagen USA [1] => [2] => [3] => [4] => 4b20ca9b7fa69 [5] => JJBxDohI8nBjFFGEHmR [6] => JJBxDohI8nBjFFGEHmR [7] => [8] => //lh5.googleusercontent.com/-i3MO9CsymQ8/AAAAAAAAAAI/AAAAAAAAAB4/ddmTW3D8s20/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://www.vw.com [2] => (800) 822-8987 [3] => [4] => 3) [19] => [20] => [21] => Take a look around, kick the tires, ask questions and get to know our community.) 
      [3] => Array () 
     ) 
     [8] => Array (
      [0] => Array (
       [0] => [1] => [2] => 115425298803319911308) 
      [1] => Array () 
      [2] => Array (
       [0] => Internal Frequency [1] => [2] => [3] => [4] => 4b177b6d46119 [5] => Co4CAo_08no3BJZjGowjFHhM [6] => Co4CAo_08no3BJZjGowjFHhM [7] => [8] => //lh4.googleusercontent.com/-lZeecuGL3Ig/AAAAAAAAAAI/AAAAAAAAABk/Afv5eGuBzUM/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://www.internalfrequency.com [2] => [3] => [4] => 6) [19] => [20] => [21] => The 1st hand ups-and-downs of the CEO of an up-and-coming entertainment label in Southern California) 
      [3] => Array () 
     ) 
     [9] => Array (
      [0] => Array ( 
       [0] => [1] => [2] => 101358795463286919640) 
      [1] => Array () 
      [2] => Array (
       [0] => Music Think Tank [1] => [2] => [3] => [4] => 4b1947fea8251 [5] => EoxACmg3IIJrFIg3IHS0Dk [6] => EoxACmg3IIJrFIg3IHS0Dk [7] => [8] => //lh4.googleusercontent.com/-B2KTfl4uNyE/AAAAAAAAAAI/AAAAAAAAACM/N955ZhPV08E/photo.jpg [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => 0 [16] => [17] => Array () [18] => Array ([0] => [1] => http://www.musicthinktank.com [2] => [3] => [4] => 6) [19] => [20] => [21] => Where the music industry speaks out loud. Create the Chaos.) 
      [3] => Array () 
     ) 
    ) 
) 
) 1 

を今では、配列の多くである:私はこれを得た

print_r (print_r($jsondata)); 

(それがより理にかなっていると簡単に読み取ることができるので、私はリターン文字を追加しました)!それだけでなく、私は名前が始まるスーパーネストされた配列[2]とその値[0] & [8]だけを必要とします!次に、この次の行(下)が実行されているときにエラーが発生しますが、私はあまり心配していません。このデータをトリミングして、そのようなメモリホッグにならないようにする方法を知りたいのですが....

$visiblepeople = $jsondata[2]; 
+1

この言語ではどのような言語を使用していますか? – baruch

+0

言語はPHP 5.3x – lukas56z

答えて

1

これはJSON(http://www.json.org)のように見えます。したがって、任意のJSON実装を使用して解析できます。 Pythonの場合、... jsonというモジュールがあります;-) http://docs.python.org/library/json.htmlを参照してください。

+0

です。私が持っているコードでは、この文字列は変数$ responseに割り当てられており、変数が定義された後にprint_r()を実行することで、データがそこにあることを確認します。その直後に、次のコード行が読み込まれます。return json_decode($ response、true);しかしそれは何も返さない。それで私は何が欠けているのですか? – lukas56z

+0

私はPHPに精通していません。残念ながら、あなたがPythonを知っているなら、このlibにそれを供給し、それが返すものを見てみてください。 JavaScriptを処理するためにJavaScriptを使用していますが、これは私が言及したリンクのドキュメントに従ってJSONで推奨されていません。 – hochl

+0

JSONがあなたのように提案してくれたので、ありがとう!今私はちょうどデータセットを軽くする必要がある、そんなに多くのネストされた配列が狂っている...特に私が取得した各人のレコードから2つのデータ値を必要と考えること! – lukas56z

関連する問題