Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-通过分解字符串创建数组_Php - Fatal编程技术网

PHP-通过分解字符串创建数组

PHP-通过分解字符串创建数组,php,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' ); …

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

$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个数组,但我想首先检查是否有一种“正确”的方法可以对已经存在的函数执行此操作,类似于这样的操作。

是否需要对您执行此操作

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