【问题标题】:PHP Array ManipulationPHP数组操作
【发布时间】:2010-02-15 18:29:28
【问题描述】:
array
  324545432 => 
    array
      0 => 
        array
          'Age' => int 1
          'Status' => string 'INSTALLED' 
          'Id' => string '830026495' 
          'name' => string 'TV' 
      1 => 
        array
          'Age' => int 2
          'Status' => string 'GOOD' 
          'Id' => string '553718299' 
          'name' => string 'Computer'

O/P 数组应该是结构体:

    array
      0 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '830026495' 
          'name' => string 'TV' 
      1 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '553718299' 
          'name' => string 'Computer'               

更新:

输入数组:

array
  324545433 => 
    array
      0 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '830026495' 
          'name' => string 'TV' 
      1 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '553718299' 
          'name' => string 'Computer'         
array
  324545432 => 
        array
          0 => 
            array
              'Age' => int 0
              'Status' => string 'INSTALLED/GOOD' 
              'Id' => string '830026495' 
              'name' => string 'TV' 
          1 => 
            array
              'Age' => int 0
              'Status' => string 'INSTALLED/GOOD' 
              'Id' => string '553718299' 
              'name' => string 'Computer'
array
  324545431 => 
        array
          0 => 
            array
              'Age' => int 0
              'Status' => string 'INSTALLED/GOOD' 
              'Id' => string '830026495' 
              'name' => string 'TV' 
          1 => 
            array
              'Age' => int 0
              'Status' => string 'INSTALLED/GOOD' 
              'Id' => string '553718299' 
              'name' => string 'Computer'
array
  324545434 => 
        array
          0 => 
            array
              'Age' => int 0
              'Status' => string 'INSTALLED/GOOD' 
              'Id' => string '830026495' 
              'name' => string 'TV' 
          1 => 
            array
              'Age' => int 0
              'Status' => string 'INSTALLED/GOOD' 
              'Id' => string '553718299' 
              'name' => string 'Computer'
array
  324545430 => 
        array
          0 => 
            array
              'Age' => int 0
              'Status' => string 'INSTALLED/GOOD' 
              'Id' => string '830026495' 
              'name' => string 'TV' 
          1 => 
            array
              'Age' => int 0
              'Status' => string 'INSTALLED/GOOD' 
              'Id' => string '553718299' 
              'name' => string 'Computer'

。 . . . .

需要输出:

    array
      0 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '830026495' 
          'name' => string 'TV' 
      1 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '553718299' 
          'name' => string 'Computer'
     2 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '830026495' 
          'name' => string 'TV' 
      3 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '553718299' 
          'name' => string 'Computer'
      4 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '830026495' 
          'name' => string 'TV' 
      5 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '553718299' 
          'name' => string 'Computer'
      6 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '830026495' 
          'name' => string 'TV' 
      7 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '553718299' 
          'name' => string 'Computer'     
      8 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '830026495' 
          'name' => string 'TV' 
      9 => 
        array
          'Age' => int 0
          'Status' => string 'INSTALLED/GOOD' 
          'Id' => string '553718299' 
          'name' => string 'Computer'

我们怎样才能做到这一点?需要注意的是,我们可以有很多层 '3242524621' 类似数字,它们是关联数组。

谢谢。

【问题讨论】:

  • $foo = array_shift($foo)$foo = reset($foo) 有效吗?
  • 如果它有许多实体的内部层怎么办。
  • 问题不是很清楚,没有使用一致的例子并且包含太多不相关的细节。为什么不重复 konforce 的代码: $bar = array() ; foreach ($foo as $foo_part) $bar[]=$foo_part;

标签: php arrays


【解决方案1】:
$k = array_keys($array);
return isset($k[0]) ? $array[$k[0]] : array();

你来了:)

【讨论】:

    【解决方案2】:

    无论键是什么,这都会将$new_array 设置为$original_array 的第一个值。

     function get_first($original_array)
     {
        foreach($original_array as $array)
        {
            return $array;
        }
    }
    $array = get_first($other_array);
    

    你也可以试试array_shift(),它会得到$original_array的第一个值,从$original_array中删除if并返回它,这样删除的值现在设置为$new_array

    $new_array = array_shift($original_array);
    

    您可能可以创建另一个类似于上面的函数来消除破坏性元素。

    function get_first($array)
    {
        return array_shift($array);
    }
    

    由于数组是按值而不是引用传递的,因此您传递给该函数的数组将保持不变。

    【讨论】:

    • 你能解释一下 get_first 函数吗,因为我在理解它的工作时遇到了一些困难。
    猜你喜欢
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2012-02-29
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多