1

私は配列に関してはあまり得意ではないので、おそらく非常に単純なものですが、私には向いていません! POST を介して値の配列を取得しています。それらを解析して値をテーブルに格納する必要があります。次のような古典的な解析をどのように使用すればよいですか。

foreach($array as $a) {
  $text = $a->text;
  $name = $a->user->name;
}

などを使用して、次のような配列を解析します。

[item] => Array
        (
            [tags] => Array
                (
                    [0] => Bluetooth
                    [1] => WiFi
                    [2] => USB
                )

        )

This is the entire POST array:

Array
(
    [prodid] => 
    [Submit] => Save
    [productcode] => 797987
    [cat_id] => 66
    [brand] => Fysiomed
    [name] =>  asdc asdc asd c
    [productnew] => yes
    [item] => Array
        (
            [tags] => Array
                (
                    [0] => Bluetooth
                    [1] => WiFi
                    [2] => USB
                )

        )

    [size] => 1
    [barcode] => 7979871
    [price] => 233.00
    [priceoffer] => 0.00
    [stock] => 50
    [weight] => 0.30
    [orderby] => 1
)
4

4 に答える 4

1
if( isset($_POST['item']) && isset($_POST['item']['tags']) ){
  foreach($_POST['item']['tags'] as $tag){
    //do stuff...e.g.
    echo $tag;
  }
}
于 2012-05-04T15:23:25.880 に答える
1
if(isset($_POST) && !empty($_POST)) {
  foreach($_POST as $key => $value) {
    if($key == 'item') {
      echo $value[$key]['tag'][0]. '<br>';
      echo $value[$key]['tag'][1]. '<br>';
      echo $value[$key]['tag'][2]. '<br>';
    } 
  }
}
于 2012-05-04T15:08:21.523 に答える
1

あなたの配列はこのように形作られているようです、これをチェックしてください

$array = array( "item" => array( "tags" => array("Bluetooth", "Wifi", "USB" ) ) );
var_dump($array);

このようなものが表示されます

array(1) {
  ["item"]=>
  array(1) {
    ["tags"]=>
    array(3) {
      [0]=>
      string(9) "Bluetooth"
      [1]=>
      string(4) "Wifi"
      [2]=>
      string(3) "USB"
    }
  }
}

この配列を解析するために、

foreach($array as $in => $val) {
    // as $array has key=>value pairs, only one key value pair
    // here $in will have the key and $val will have the value
    // $in will be "item"
    print $in; // this will print "item"
    foreach($val as $in2 => $val2 ){
        // only one key : "tags"
        print $in; // this will print "tags"
        print $val2[0];  // this will print "Bluetooth"
        print $val2[1];  // this will print "Wifi"
    } 
}

これで配列に関する疑問が解消されることを願っています。

于 2012-05-04T15:36:59.437 に答える
0

テキストを取り出しようとしているだけですか?これを試して。

foreach($array['item']['tags'] as $tag) {
   $text = $tag;
}
于 2012-05-04T15:01:41.153 に答える