数组转换为多维数组 [英] Convert Array to Multidimensional Array

查看:97
本文介绍了数组转换为多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我喜欢单一阵列转换成一个多维数组。这是我得到的网页有刮页面,但它不是我期待的最终结果。

更改

 客房:阵列(
  [0] =>名称
  [1] =>值
  [2] =>尺寸
  [3] => &安培; NBSP;
  [4] =>名称
  [5] =>值
  [6] =>尺寸
  [7] => &安培; NBSP;
  [8] =>名称
  [9] =>值
  [10] =>尺寸
  [11] => &安培; NBSP;
  [12] =>名称
  [13] =>值
  [14] =>尺寸
  [15] => &安培; NBSP;

进入:

 客房:阵列(
  客房:阵列(
    [0] =>名称
    [1] =>值
    [2] =>尺寸
  )
  客房:阵列(
    [0] =>名称
    [1] =>值
    [2] =>尺寸
  )
  客房:阵列(
    [0] =>名称
    [1] =>值
    [2] =>尺寸
  )


解决方案

第一次使用的 array_filter() 摆脱&放大器; NBSP; 节点:

  $阵列= array_filter($阵列功能($ X){返回修剪($ X)='&放大器; NBSP;';});//或者,如果你的PHP是年龄超过5.3
$阵列= array_filter($阵列,create_function('$ X','回报修剪($ x)=!&放大器; NBSP;'));

然后使用 array_chunk() 到阵列分成三大块:

  $阵列= array_chunk($阵列,3);

这当然是假定你永远只有获取包含名称尺寸,按照这个顺序。

I like to convert a single array into a multidimensional array. This is what I get have web scraping a page, except it is not the end result that I am looking for.

Change:

Rooms: Array (
  [0] => name 
  [1] => value 
  [2] => size
  [3] =>  
  [4] => name 
  [5] => value 
  [6] => size
  [7] =>      
  [8] => name 
  [9] => value 
  [10] => size
  [11] =>  
  [12] => name 
  [13] => value 
  [14] => size
  [15] =>  
)

Into:

Rooms: Array (
  Room: Array (
    [0] => name 
    [1] => value 
    [2] => size
  ),
  Room: Array (
    [0] => name 
    [1] => value 
    [2] => size
  ),
  Room: Array (
    [0] => name 
    [1] => value 
    [2] => size
  )
)

解决方案

First use array_filter() to get rid of the   nodes:

$array = array_filter($array, function($x) { return trim($x) != ' '; });

// Or if your PHP is older than 5.3
$array = array_filter($array, create_function('$x', 'return trim($x) != " ";'));

Then use array_chunk() to split the array into chunks of 3:

$array = array_chunk($array, 3);

This of course assumes you will always and only get tuples containing name, value and size, in that order.

这篇关于数组转换为多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆