PHP - 通过爆炸字符串创建数组

时间:2011-06-20 03:02:43

标签: php

我需要从表单处理一些输入。表单中的输入数量取决于应用程序中的语言数量。例如,假设我支持英语和法语:

$input = array(
  'name_1' => 'Some input in english',
  'content_1' => 'Some long text in english',
  'name_2' => 'Some input in french',
  'content_2' => 'Some long text in french'
);

......其中'1'和'2'分别是英语和法语的ID。我想要做的是爆炸字符串:

foreach($input as $key=>$val)
{
  $exploded = explode('_', $key);
  $arr = $exploded[1];
  $key = $exploded[2];
}

..然后将它们推送到单独的数组中。请记住,可能有2种语言,或10种语言,因此只需初始化2个数组并检查“1”或“2”,因为$ key将无效。

如何将每个值的值推送到数组中,以便最终得到一个看起来像这样的数组?

$results = array( '1' => array('name' => 'Some input in english', 'content' => 'Some long text in english'), '2' => array('name' => 'Some input in french', 'content' => 'Some long text in french');

提前致谢。我的一个想法是根据唯一键值的计数来初始化2个数组,但是想先检查是否有一种“正确”的方法来为已存在的函数做这样的事情。

1 个答案:

答案 0 :(得分:3)

这样的事情对你有用吗?

$results = array();
foreach($input as $key=>$val)
{
  $exploded = explode('_', $key);
  $results[$exploded[1]][$exploded[0]] = $val;
}