我有一个TXT格式的文件,想读到里面的二两个字段,一个ID,,,一个TEXT用来做一个下拉菜单。。$file = 'pandawill_categories.txt';
$content = file_get_contents($file);//获取txt字符$arraystate=json_decode($content, true);//格式化成数组var_dump($arraystate);运行上面代码后,出现一个三维数组,里面有我想要的数据ID和TEXT,。。怎么才能读出来,因为是三维。不好取,谁能帮忙解决一下。很急。。很急QQ463220877,有好心可以加我QQ帮解决!

解决方案 »

  1.   

    本帖最后由 xuzuning 于 2011-10-17 15:55:36 编辑
      

  2.   

    基本代码,自行修改
    function foo($ar) {
      foreach($ar as $r) {
        echo $r['id'],$r['text'],'<br>';
        if($r['children']) foo($r['children']);
      }
    }
      

  3.   

    根上面一些,取出来有四百多个,但实际我只要几十个,有很多TEXT是重复的,我要取出不重复的,根据TEXt这个字段..,
      

  4.   

    我得到一个二维的表,里面处理成只有ID和TEXT了,这是我取出的一些数据,我做成了下拉菜单,但里面TEXT有很多得复的,<option value="">请选择</option>
    <option value="392">PandaWill@Home</option>
    <option value="393">PandaWill in US</option>
    <option value="394">Apple Accessories</option>
    <option value="395">Electronics</option>
    <option value="462">Toys</option>
    <option value="463">Car Model</option>
    <option value="464">R/C Toys</option>
    <option value="396">Others</option>
    <option value="465">Bath</option>
    <option value="467">Home & Garden</option>
    <option value="466">Others</option>
    <option value="397">PandaWill in UK</option>
    <option value="398">Apple Accessories</option>
    <option value="399">Home & Garden</option>
    <option value="481">Bath</option>
    <option value="400">Others</option>
    <option value="401">PandaWill in AU</option>
    <option value="402">Apple Accessories</option>
    <option value="403">Home & Garden</option>
    <option value="404">Others</option>
    <option value="18">Apple Accessories</option>
    <option value="248">Ipad Keyboard & Iphone Keyboard</option>
    <option value="249">iPod Touch</option>
    <option value="250">iPod Shuffle</option>
    <option value="251">iPod Nano</option>
    <option value="252">iPod Classic</option>
    <option value="253">iPhone 4 Accessories</option>
    <option value="254">IPhone Accessories </option>
    <option value="255">iPad & iPad 2 Accessories</option>
    <option value="15">Camera & Photo</option>
    <option value="139">Digital Picture Frames</option>
    <option value="39">Photo/Picture Frame Key Chain</option>
    <option value="40">8.0 Inch Digital Picture Frame</option>
    <option value="41">7.0 Inch Digital Picture Frame</option>
    <option value="42">12.1 Inch Digital Picture Frame</option>
    <option value="43">10.4 Inch Digital Picture Frame</option>
    <option value="140">Digital Cameras</option>
    <option value="142">Digital Camcorders</option>
    <option value="416">Digital Camera Accessories</option>
    <option value="417">Remote Controls</option>
    <option value="418">LCD Hoods & Screen Protectors</option>
    <option value="419">Camera Body Parts</option>
    <option value="420">Bags, Cases & Straps</option>
    <option value="421">Tripods</option>
    <option value="422">Flashes</option>
    <option value="423">UV, Haze, Protection</option>
    <option value="424">Polarizing</option>
    <option value="425">Lenses & Filters</option>
    <option value="426">Others</option>
    <option value="14">Car Electronics</option>
    <option value="44">Vehicle Mount Camera</option>
    <option value="45">Rear View Monitors & Parking Sensor System</option>
    <option value="46">Overhead / Headrest DVD</option>
    <option value="47">Car MP3 Player</option>
    <option value="48">Car Lights</option>
    <option value="49">Car Graphics Decals</option>
    <option value="50">Car GPS</option>
    <option value="51">Car DVD Player</option>
    <option value="277">Especial Car DVD Player</option>
    <option value="232">Volkswagen</option>
    <option value="233">TOYOTA</option>
    <option value="234">SUZUKI</option>
    <option value="235">Renault</option>
    <option value="236">Peugeot</option>
    <option value="237">Nissan</option>
    <option value="238">Mitsubishi</option>
    <option value="239">MAZDA</option>
    <option value="240">Hyundai</option>
    <option value="241">HONDA</option>
    <option value="242">Ford</option>
    <option value="243">Citroen</option>
    <option value="244">Chevrolet</option>
    <option value="245">BUICK</option>
    <option value="246">BMW</option>
    <option value="247">AUDI</option>
    <option value="278">Car DVD Player</option>
    <option value="52">Car Bluetooth Accessories</option>
    <option value="53">Car Accessories</option>
    <option value="13">Clocks & Watches</option>
    <option value="279">Watch Battery</option>
    <option value="280">Watch Accessories</option>
    <option value="281">Quartz Watch</option>
    <option value="282">Mechanical Watch</option>
    <option value="283">LED Watch</option>
    <option value="284">LED Clock</option>
    <option value="285">Digital Watch</option>
    <option value="286">Digital Clocks</option>
    <option value="287">Character & Gear Clock</option>
    <option value="413">Pocket Watch</option>
    <option value="12">Computer & Laptops</option>
    <option value="17">Battery and Charger </option>
    <option value="65">Laptop Battery</option>
    <option value="165">Unwill&Fujitsu Laptop Battery</option>
    <option value="166">Toshiba Laptop Battery</option>
    <option value="167">Sony Laptop Battery</option>
    <option value="168">Samsung Laptop Battery</option>
    <option value="169">Packard Bell Laptop Battery</option>
    <option value="170">NEC Laptop Battery</option>
    <option value="171">Mitac Laptop Battery</option>
    <option value="172">Lenovo Laptop Battery</option>
    <option value="173">IBM Laptop Battery</option>
    <option value="174">HP&COMPAQ Laptop Battery Catalog</option>
    <option value="175">Gateway Laptop Battery</option>
    <option value="176">Dell Laptop Battery</option>
    <option value="177">Clevo Laptop Battery</option>
    <option value="178">BENQ Laptop Battery</option>
    <option value="179">ASUS Laptop Battery</option>
    <option value="180">Apple Laptop Battery</option>
    <option value="181">Acer Laptop Battery</option>
    <option value="66">Digital Camera Battery</option>
    <option value="75">Sony Digital Camera Battery</option>
    <option value="76">Samsung Digital Camera Battery</option>
    <option value="77">Ricoh Digital Camera Battery</option>
    <option value="78">Pentax Digital Camera Battery</option>
    <option value="79">Panasonic Digital Camera Battery</option>
    <option value="80">Olympus Digital Camera Battery</option>
    <option value="81">Nikon Digital Camera Battery</option>
    <option value="82">Kodak Digital Camera Battery</option>
    <option value="83">FUJIFILM Digital Camera Battery</option>
    <option value="84">Casio Digital Camera Battery</option>
    <option value="85">Canon Digital Camera Battery</option>
    <option value="67">Camcorder battery</option>
    <option value="68">Sony Camcorder Battery</option>
    <option value="69">Sharp Camcorder Battery</option>
    <option value="70">Samsung Camcorder Battery</option>
    <option value="71">Panasonic Camcorder Battery</option>
    <option value="72">JVC Camcorder Battery</option>
    <option value="73">HITACHI Camcorder Battery</option>
    <option value="74">Canon Camcorder Battery</option>
    <option value="16">Cables & Adapters</option>
    <option value="100">Webcam</option>
    <option value="101">USB WIFI Adapter</option>
    <option value="102">USB Hubs</option>
    <option value="103">USB Fun Gadgets</option>
    <option value="104">USB Flash Memory</option>
    <option value="105">USB Card Reader</option>
    <option value="106">USB Bluetooth Adapters</option>
    <option value="107">Speaker & Microphone</option>
    <option value="108">Skype phone</option>
    <option value="109">Scanners</option>
    <option value="410">Laptop/ Notebook</option>
    <option value="411">Notebook/ Laptop PC</option>
    <option value="110">Laptop Desk</option>
    <option value="111">Laptop Cases & Bags</option>
    <option value="112">Keyboards, Mice & Input</option>
    <option value="113">Earphones & Earplugs</option>
    <option value="198">SONY</option>
    <option value="199">Sennheiser</option>
    <option value="200">Other Brands Earphones</option>
    <option value="201">Monster</option>
    <option value="202">JVC</option>
    <option value="203">GORSUN</option>
    <option value="204">BOSE</option>
    <option value="205">Bluetooth Earphone</option>
    <option value="206">Audio-Technica</option>
    <option value="207">AKG</option>
    <option value="114">Cooler & Cooling Fan</option>
    <option value="115">Convertors</option>
    <option value="116">Computer Accessories</option>
    <option value="117">Blank CD & DVD</option>
    <option value="118">3G Wireless USB Modem</option>
    <option value="11">Consumer Electronics</option>
      

  5.   

    我用这段代码$file = 'pandawill_categories.txt';
    $content = file_get_contents($file);//获取txt字符$arraystate=json_decode($content, true);//格式化成数组//三递归出来,把三维转换成二维数组,只取IT和TEXT;
    function recursive_arr($arr)
    {
    $array = array();
    foreach( $arr as $key => $value)
    {
    $children = array_pop($value);
    $array[] =  $value;
    if(is_array($children)&&count($children)>0){
    foreach( $children as $key => $value)
    {
    $children = array_pop($value);
    $array[] =  $value;
    if(is_array($children)&&count($children)>0){
    foreach( $children as $key => $value)
    {
    $children = array_pop($value);
    $array[] =  $value;
    if(is_array($children)&&count($children)>0){
    foreach( $children as $key => $value)
    {
    $array[] =  $value;
    }
    }
    }

    }
    }
    }
    }
    return $array;
    }
    $arrlist = recursive_arr($arraystate);var_dump($arrlist);运行得到下面的数据,很太我弄一部分;;;array(477) {
      [0]=>
      array(3) {
        ["id"]=>
        string(3) "392"
        ["text"]=>
        string(14) "PandaWill@Home"
        ["checked"]=>
        bool(false)
      }
      [1]=>
      array(3) {
        ["id"]=>
        string(3) "393"
        ["text"]=>
        string(15) "PandaWill in US"
        ["checked"]=>
        bool(false)
      }
      [2]=>
      array(3) {
        ["id"]=>
        string(3) "394"
        ["text"]=>
        string(17) "Apple Accessories"
        ["checked"]=>
        bool(false)
      }
      [3]=>
      array(3) {
        ["id"]=>
        string(3) "395"
        ["text"]=>
        string(11) "Electronics"
        ["checked"]=>
        bool(false)
      }
      [4]=>
      array(3) {
        ["id"]=>
        string(3) "462"
        ["text"]=>
        string(4) "Toys"
        ["checked"]=>
        bool(false)
      }
      [5]=>
      array(4) {
        ["id"]=>
        string(3) "463"
        ["text"]=>
        string(9) "Car Model"
        ["checked"]=>
        bool(false)
        ["children"]=>
        array(0) {
        }
      }
      [6]=>
      array(4) {
        ["id"]=>
        string(3) "464"
        ["text"]=>
        string(8) "R/C Toys"
        ["checked"]=>
        bool(false)
        ["children"]=>
        array(0) {
        }
      }
      [7]=>
      array(4) {
        ["id"]=>
        string(3) "396"
        ["text"]=>
        string(6) "Others"
        ["checked"]=>
        bool(false)
        ["children"]=>
        array(0) {
        }
      }
      [8]=>
      array(3) {
        ["id"]=>
        string(3) "465"
        ["text"]=>
        string(4) "Bath"
        ["checked"]=>
        bool(false)
      }
      [9]=>
      array(3) {
        ["id"]=>
        string(3) "467"
        ["text"]=>
        string(13) "Home & Garden"
        ["checked"]=>
        bool(false)
      }
      [10]=>
      array(3) {
        ["id"]=>
        string(3) "466"
        ["text"]=>
        string(6) "Others"
        ["checked"]=>
        bool(false)
      }
      [11]=>
      array(3) {
        ["id"]=>
        string(3) "397"
        ["text"]=>
        string(15) "PandaWill in UK"
        ["checked"]=>
        bool(false)
      }
      [12]=>
      array(3) {
        ["id"]=>
        string(3) "398"
        ["text"]=>
        string(17) "Apple Accessories"
        ["checked"]=>
        bool(false)
      }
      [13]=>
      array(3) {
        ["id"]=>
        string(3) "399"
        ["text"]=>
        string(13) "Home & Garden"
        ["checked"]=>
        bool(false)
      }
      [14]=>
      array(3) {
        ["id"]=>
        string(3) "481"
        ["text"]=>
        string(4) "Bath"
        ["checked"]=>
        bool(false)
      }
      [15]=>
      array(3) {
        ["id"]=>
        string(3) "400"
        ["text"]=>
        string(6) "Others"
        ["checked"]=>
        bool(false)
      }
      [16]=>
      array(3) {
        ["id"]=>
        string(3) "401"
        ["text"]=>
        string(15) "PandaWill in AU"
        ["checked"]=>
        bool(false)
      }
      [17]=>
      array(3) {
        ["id"]=>
        string(3) "402"
        ["text"]=>
        string(17) "Apple Accessories"
        ["checked"]=>
        bool(false)
      }
      [18]=>
      array(3) {
        ["id"]=>
        string(3) "403"
        ["text"]=>
        string(13) "Home & Garden"
        ["checked"]=>
        bool(false)
      }
      [19]=>
      array(3) {
        ["id"]=>
        string(3) "404"
        ["text"]=>
        string(6) "Others"
        ["checked"]=>
        bool(false)
      }
      [20]=>
      array(3) {
        ["id"]=>
        string(2) "18"
        ["text"]=>
        string(17) "Apple Accessories"
        ["checked"]=>
        bool(false)
      }
      [21]=>
      array(3) {
        ["id"]=>
        string(3) "248"
        ["text"]=>
        string(31) "Ipad Keyboard & Iphone Keyboard"
        ["checked"]=>
        bool(false)
      }
      [22]=>
      array(3) {
        ["id"]=>
        string(3) "249"
        ["text"]=>
        string(10) "iPod Touch"
        ["checked"]=>
        bool(false)
      }
      [23]=>
      array(3) {
        ["id"]=>
        string(3) "250"
        ["text"]=>
        string(12) "iPod Shuffle"
        ["checked"]=>
        bool(false)
      }
      [24]=>
      array(3) {
        ["id"]=>
        string(3) "251"
        ["text"]=>
        string(9) "iPod Nano"
        ["checked"]=>
        bool(false)
      }
      [25]=>
      array(3) {
        ["id"]=>
        string(3) "252"
        ["text"]=>
        string(12) "iPod Classic"
        ["checked"]=>
        bool(false)
      }这里面有我想要的id和text,但有些text重复,我想去掉这些重复,根据TEXT去掉一些重复,重复的只留一个,和它对应的id,最后的结果,我想要有一个id,text,里面没有重复的text,
      

  6.   

    很简单一个想法是先根据text排序,然后去掉重复的。一个示例代码如下:
    <?php
      function compare($a,$b){
        return strcasecmp($a['text'],$b['text']);
      }
    $arr = array(0=>array('id'=>1,'text'=>'aa'),
                 1=>array('id'=>1,'text'=>'cda'),
     2=>array('id'=>1,'text'=>'aa'),
     3=>array('id'=>1,'text'=>'dde'),
     4=>array('id'=>1,'text'=>'efs'),
     5=>array('id'=>1,'text'=>'aa'),
     6=>array('id'=>1,'text'=>'aaaaef'));
    uasort($arr,'compare');
    $arr = array_slice($arr,0);for($i=0;$i<count($arr);){
      for($j=$i+1;$j<count($arr);$j++){
        if($arr[$i]['text'] == $arr[$j]['text']){
      unset($arr[$j]);
    }else{
      $i = $j;
      break 2;
    }
      }
    }
    echo "<pre>";
    print_r($arr);
    echo "</pre>";
      

  7.   

    楼上方法试了不行,能加我QQ::463220877 吗,我发原数扰TXT文件给你测试一上,看能不能读出来
      

  8.   

    怎么不行,数据要换成你自己的。我的测试结果:Array
    (
        [0] => Array
            (
                [id] => 1
                [text] => aa
            )    [3] => Array
            (
                [id] => 1
                [text] => aaaaef
            )    [4] => Array
            (
                [id] => 1
                [text] => cda
            )    [5] => Array
            (
                [id] => 1
                [text] => dde
            )    [6] => Array
            (
                [id] => 1
                [text] => efs
            ))
      

  9.   

    你就不会var_export一下啊 ,。这样大家都可以用了。。