分组元素数组基于php的第一个字符值

时间:2017-11-27 12:09:28

标签: php mysql arrays

我有一个基于数组的MySql数据库。 这是阵列。

[
  0 => [
    'id' => '1997'
    'lokasi_terakhir' => 'YA4121'
  ]
  1 => [
    'id' => '1998'
    'lokasi_terakhir' => 'PL2115'
  ]
  2 => [
    'id' => '1999'
    'lokasi_terakhir' => 'PL4111'
  ]
]

如何获取按第一个字符分组的元素lokasi_terakhir?最好的方法是什么?

这是目标:

[
   "Y" => 1,
   "P" => 2
]

请告知

2 个答案:

答案 0 :(得分:1)

您可以将这些项目分组:

    $array = [
      0 => [
        'id' => '1997',
        'lokasi_terakhir' => 'YA4121'
      ],
      1 => [
        'id' => '1998',
        'lokasi_terakhir' => 'PL2115'
      ],
      2 => [
        'id' => '1999',
        'lokasi_terakhir' => 'PL4111'
      ]
    ];

$result = array();
foreach($array as $item) {
  $char = substr($item['lokasi_terakhir'], 0, 1);
  if(!isset($result[$char])) {
    $result[$char] = array();
  }

  $result[$char][] = $item;
}

答案 1 :(得分:0)

<?php
$array=[
    0 => [
        'id' => '1997',
    'lokasi_terakhir' => 'YA4121'
  ],
  1 => [
    'id' => '1998',
    'lokasi_terakhir' => 'PL2115'
  ],
  2 => [
    'id' => '1999',
    'lokasi_terakhir' => 'PL4111'
  ]
];

foreach($array as $row){
    $newArray[]=$row['lokasi_terakhir'][0];

}

print_r(array_flip(array_unique($newArray)));

此代码获取字段lokasi_terakhir的第一个字母,获取唯一值以避免重复,只需翻转数组即可获得所需结果。

输出是这样的:

Array ( [Y] => 0 [P] => 1 )