在php

时间:2018-04-18 05:44:34

标签: php arrays multidimensional-array foreach

我的目标是从多维数组中获取特定元素/值,并将它们分配到循环中的URL中。我已经尝试过并且能够获取数组中的元素,但这会显示所有元素。我只希望获得具体内容,例如nidfield_x值。

这是我的链接结构:http://localhost:8080/$nid/$field_x

预期结果:

http://localhost:8080/123/one
http://localhost:8080/789/three

这是我的样本var_dump结果

array(1) {
  [0]=>
  array(38) {
    ["nid"]=>
    array(1) {
      [0]=>
      array(1) {
        ["value"]=>
        int(123)
      }
    }
    ["vid"]=>
    array(1) {
      [0]=>
      array(1) {
        ["value"]=>
        int(456)
      }
    }
    ["field_x"]=>
    array(1) {
      [0]=>
      array(4) {
        ["target_id"]=>
        string(6) "One"
      }
    }
    ["field_y"]=>
    array(1) {
      [0]=>
      array(4) {
        ["target_id"]=>
        string(2) "Two"
      }
    }
  }
  [1]=>
  array(38) {
    ["nid"]=>
    array(1) {
      [0]=>
      array(1) {
        ["value"]=>
        int(789)
      }
    }
    ["vid"]=>
    array(1) {
      [0]=>
      array(1) {
        ["value"]=>
        int(321)
      }
    }
    ["field_x"]=>
    array(1) {
      [0]=>
      array(4) {
        ["target_id"]=>
        string(6) "Three"
      }
    }
    ["field_y"]=>
    array(1) {
      [0]=>
      array(4) {
        ["target_id"]=>
        string(2) "Four"
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用foreach()并使用$values['nid'][0]['value']$values['field_x'][0]['target_id']获取数据:

foreach ($result as $values) {
    $nid = $values['nid'][0]['value'];
    $field_x = $values['field_x'][0]['target_id'];
    echo "http://localhost:8080/$nid/$field_x" ;
}

输出:

  

http://localhost:8080/123/One
  http://localhost:8080/789/Three

你可能想要做一些不是回声的事情,所以你可以创建一个新数组:

$urls = [];
foreach ($result as $values) {
    $nid = $values['nid'][0]['value'];
    $field_x = $values['field_x'][0]['target_id'];
    $urls[] = "http://localhost:8080/$nid/$field_x" ;
}
print_r($urls);