【问题标题】:split an array into multiple part based on key pattern根据键模式将数组拆分为多个部分
【发布时间】:2018-01-24 09:02:31
【问题描述】:

我有一个数组,我希望根据数组中的键将其拆分为多个数组。

所以在下面的示例中有 3 个键:1.post、2.social、3、test。我希望能够得到三个独立的数组

我的问题是我想将它们分成三个单独的数组。做这个的最好方式是什么。我找到的最接近的函数是 array_chunk 但这会将数组拆分为定义的大小-我不 不知道数组的潜在大小

array
  'post-postcode' => string 'tb44 24BQ' (length=9)
  'post-telephone' => string '0208  2414399' (length=13)
  'social-linkedin' => string 'linkedin-Waters' (length=15)
  'test-testi' => string '6' (length=1)
  'test-name' => string 'Rodgers Castro' (length=14)

【问题讨论】:

  • 你的问题是什么?同时显示您当前的代码。
  • 您的示例包含五个键,而不是三个。
  • 嗨 justBaron- 是的,五个键将被分成 3 个单独的数组。即“post”将形成一个包含 2 个键的数组:kesy post-postcode 和 post-telephone

标签: php arrays sorting


【解决方案1】:

如果我理解正确,你可以像下面这样做,但这是一个 XY 问题,你为什么不先正确地构造你的数组?

$normalised = [];
foreach ($array as $key => $value) {
    list($k, $a) = explode('-', $key, 2);
    $normalised[$k][$a] = $value;
}

【讨论】:

  • 嗨劳伦斯-谢谢你的回答。你将如何构造数组
  • 按照你想要的方式构建它。
  • 对不起。我的意思是,当您说首先正确构建我的数组时,我正在寻求澄清您的意思?也许你是对的,有更好的方法来构造数组
  • @theSeeker 你在哪里构建原始数组,改变它,使结构是你想要的。那么你就不需要这个额外的代码来修复结构了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
相关资源
最近更新 更多