Php 如何在数组输出上的下划线之前获取一个单词

Php 如何在数组输出上的下划线之前获取一个单词,php,arrays,Php,Arrays,这是我当前的数组,它保留了值的第一个字符 Array ( [n] => Array ( [0] => name_john ) [a] => Array ( [0] => age_30 ) ) foreach ($queryArray as $key) { $inArray[$key[0]][] = $key; } 问题:如何在下划线之前抓取一个单词并将数组更改为 Array ( [name] => Array (

这是我当前的数组,它保留了值的第一个字符

Array ( [n] => Array ( [0] => name_john ) [a] => Array ( [0] => age_30 ) )

foreach ($queryArray as $key) {
    $inArray[$key[0]][] = $key;
}
问题:如何在下划线之前抓取一个单词并将数组更改为

Array
(
    [name] => Array
        (
            [0] => name_john
        )

    [age] => Array
        (
            [0] => age_30
        )

)

要解析下划线前的单词,请使用“分解”:

// $key = name_john
$split_key = explode('_',$key);
// $split_key[0] equals name

要解析下划线前的单词,请使用“分解”:

// $key = name_john
$split_key = explode('_',$key);
// $split_key[0] equals name
但是如果使用“key”作为关联索引创建数组,如

Array ( [n] => Array ( ["name"] => john ) [a] => Array ( ["age"] => 30 ) )
那你可以

foreach ($queryArray as $subArr) {
    foreach($subArr as $subkey => $val){
        $inArray[$subkey][] = $val;
    }
}
你应该得到这样一个数组

Array
(
    ["name"] => "john"

    ["age"] => 30
)
虽然它不是“期望的”输出,但它可能更干净,更易于用于您正在做的事情

但是如果使用“key”作为关联索引创建数组,如

Array ( [n] => Array ( ["name"] => john ) [a] => Array ( ["age"] => 30 ) )
那你可以

foreach ($queryArray as $subArr) {
    foreach($subArr as $subkey => $val){
        $inArray[$subkey][] = $val;
    }
}
你应该得到这样一个数组

Array
(
    ["name"] => "john"

    ["age"] => 30
)
虽然它不是“期望的”输出,但可能更干净,更易于用于您所做的事情。

  • 要拆分该值,请使用
    分解('''',$value)
    并获取返回数组的第一项
  • 要修改foreach中的数组,请在数组上添加引用
  • 要更改数组中元素的键,请选中此线程:
工作示例:()

  • 要拆分该值,请使用
    分解('''',$value)
    并获取返回数组的第一项
  • 要修改foreach中的数组,请在数组上添加引用
  • 要更改数组中元素的键,请选中此线程:
工作示例:()


请尝试将其放在foreach语句中:)


请尝试将其放在foreach语句中:)


您从哪里获得阵列?如果可能的话,您应该解决实际问题,并创建具有适当结构的数组。您从何处获取数组?如果可能的话,你应该解决实际问题,并创建一个具有适当结构的数组。如果只有一个
name
就可以了,如果有两个
name
示例数组
$array=array('n'=>array(0=>'name\u john',1=>'name\u peter'),'a'=>array('0'=>'age\u 30')
当有一个
name\uuu
并且如果有两个
name\uu
示例数组
$array=array('n'=>array(0=>'name\u john',1=>'name\u peter'),'a'=>array('0'=>'age\u 30'),则变为空时,这是有效的
$string = strstr($key, '_', true); 
echo $string; // prints ewverything before the '_'