将值添加到分块数组值并输出到表

时间:2018-09-18 08:55:45

标签: php arrays laravel

我有数据数组:

$array = [
   0=>1
   1=>jon
   2=>jon@email.com
   3=>9-18-2018
   4=>2
   5=>doe
   6=>doe@email.com
   7=>9-18-2018
   8=>3
   9=>foo
   10=>foo@email.com
   11=>9-18-2018
]

然后我对该数组进行分块并输出为表

    @foreach(array_chunk($array, 4) as $data)
     <tr>
     @foreach($data as $i => $chunked_data)
       <td>
          {{$data[$i]}}
       </td>
     @endforeach
     </tr>
   @endforeach

我有一个当前输出:

ID  Name     Email           Created at
1   Jon    jon@email.com      9-18-2018
2   Doe    doe@email.com      9-18-2018
3   Foo    foo@email.com      9-18-2018

我需要告诉抽动记录第二数组是哪种数据类型。

所以我创建的第一个表是分块数组:

  $array = [
   array[
      0=>1
      1=>Joe
      2=>joe@email.com
      3=>9-18-2018
   ]
     array[
      0=>1
      1=>Doe
      2=>doe@email.com
      3=>9-18-2018
   ]
     array[
      0=>1
      1=>Foo
      2=>foo@email.com
      3=>9-18-2018
   ]
]

第二个是简单数组:

$data_types = [
      0=>int
      1=>string
      2=>string
      3=>date
]

所以我的猜测是,我需要将第一个数组和第二个数组组合成这样:

    $data_types = [
   0=>1 [int]
   1=>Joe [string]
   2=>joe@email.com [string]
   3=>9-18-2018 [date]
]

所以我想要的输出是:

  ID        Name             Email                Created at
1(int)   Jon(string)    jon@email.com(string)      9-18-2018(date)
2(int)   Doe(string)    doe@email.com(string)      9-18-2018(date)
3(int)   Foo(string)    foo@email.com(string)      9-18-2018(date)

请记住,我必须通过组合2个数组来实现它,其中一个是纯数据,第二个是数据类型。

我在laravel上,但是普通的php示例也将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以在代码中使用$i表示的索引来引用第二个数组来获取类型:

@foreach(array_chunk($array, 4) as $data)
    <tr>
        @foreach($data as $i => $chunked_data)
            <td>
                {{$data[$i]}} {{$data_types[$i]}}
            </td>
        @endforeach
    </tr>
@endforeach

希望有帮助。

编辑:

对于纯PHP中的示例:

$array = array(
    array(
        1,
        'Joe',
        'joe@email.com',
        '9-18-2018'
    ),
    array(
        2,
        'Doe',
        'doe@email.com',
        '9-18-2018',
    ),
    array(
        3,
        'Foo',
        'foo@email.com',
        '9-18-2018',
    )
);

$data_types = array(
    'int',
    'string',
    'string',
    'date'
);

foreach ($array as $chunked) {
    foreach ($chunked as $key => $data) {
        echo "{$data} {$data_types[$key]} | ";
    }
    echo "\n";
}

输出:

1 int | Joe string | joe@email.com string | 9-18-2018 date |
2 int | Doe string | doe@email.com string | 9-18-2018 date |
3 int | Foo string | foo@email.com string | 9-18-2018 date |

答案 1 :(得分:0)

$array = [
0=>1
1=>jon
2=>jon@email.com
3=>9-18-2018
4=>2
5=>doe
6=>doe@email.com
7=>9-18-2018
8=>3
9=>foo
10=>foo@email.com
11=>9-18-2018
];
$data_types = [
  0=>int
  1=>string
  2=>string
  3=>date
];
foreach(array_chunk($array,4) as $data) {
     @foreach(array_chunk($array, 4) as $data)
 <tr>
 @foreach($data as $i => $chunked_data)
   <td>
      {{$chunked_data}}{{$data_types[$i]}}  //the order of the datas is certain so you can use the index directly
   </td>
 @endforeach
 </tr>
 @endforeach
}