【问题标题】:converting hardcode data into dynamic foreach php将硬编码数据转换为动态 foreach php
【发布时间】:2015-12-14 11:47:06
【问题描述】:

我有一个要转换的硬编码数据,我遇到的问题是多维数组,导致我在这里失败的是硬编码:

$query = array(
    'No' => 'test123',
    'list' => array(
        0 => array(
            'title' => 'MR'
        ),
        1 => array(
            'title' => 'MS'
        ),
        2 => array(
            'title' => 'MISS'
        ),
        3 => array(
            'title' => 'MISS'
        ),
    ),
);

我尝试从这样的数据转换为动态 php foreach:

  foreach($datas as $data) {
    $num = count($data);
    $newdata = array();
    for($i=0;$i<$num;$i++) {
      $dataid = $data[$i]['target_id'];
      $datainfo = dataget($dataid);
      $title = strtoupper($datainfo->title);

      $datalist[] = array(
            'title' => $title,
          );
    }
  }
  $query = array (
      'No' => $title,
      'list' => $datalist
  );

但它不起作用,当我提交超过 1 个数据时,它不起作用,但是当它只有 1 个数据时它起作用。

我是否正确地重构了代码?有人可以澄清一下吗?

谢谢

【问题讨论】:

  • 你的代码有很多bug,你能用所有的代码和$datas数组更新吗?

标签: php arrays for-loop multidimensional-array foreach


【解决方案1】:

您的 foreach 使用不正确。您正在混合数据和数据。

foreach($datas as $data) 

应该改为

foreach($data as $datas) 

在循环内部,所有出现的 $data 都应更改为 $datas。

我并没有真正明白你想要做什么。但是使用下面的代码,我能够打印出整个数组的内容。

$irr = array(
    'No' => 'test123',
    'list' => array(
        0 => array('title' => 'MR'),
        1 => array('title' => 'MS'),
        2 => array('title' => 'MISS'),
        3 => array('title' => 'MISS')
    ),
    'No2' => 'test2',
    'listo' => array(
        0 => array('title' => 'MR'),
        1 => array('title' => 'MS'),
        2 => array('title' => 'Mato')
    )
);

echo "<br>";
foreach($irr as $key=>$data) {
    $num = count($data);
    if ($num == 1) { 
        echo $key . "=>" . $data."<br>";
        continue;
    }

    echo $key . "=> <br>";
    for($i = 0; $i < $num; $i++) {
      $dataid = $data[$i]['title'];
      echo "&nbsp;&nbsp;&nbsp;&nbsp;".$dataid."<br>";
    }
}

【讨论】:

  • 对不起,这是一个例子,因为真正的变量不是应该是更新版本,谢谢
猜你喜欢
  • 2019-10-30
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多