ホームページ > php教程 > php手册 > php实现根据字符串生成对应数组的方法,php字符串对应数组

php实现根据字符串生成对应数组的方法,php字符串对应数组

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 09:25:01
オリジナル
943 人が閲覧しました

php实现根据字符串生成对应数组的方法,php字符串对应数组

本文实例讲述了php实现根据字符串生成对应数组的方法,是比较实用的技巧。分享给大家供大家参考。具体方法如下:

先看看如下示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<&#63;php

$config = array(

 'project|page|index' => 'content',

 'project|page|nav' => array(

 array(

 'image' => '1.jpg',

 'name' => 'home'

 ),

 array(

 'image' => '2.jpg',

 'name' => 'about'

 )

 ),

 'project|page|open' => true

);

&#63;>

ログイン後にコピー

根据$config生成以下数组:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<&#63;php

$result = array(

 'project' => array(

 'page' => array(

 'index' => 'content',

 'nav' => array(

  array(

  'image' => '1.jpg',

  'name' => 'home'

  ),

  array(

  'image' => '2.jpg',

  'name' => 'about'

  )

 ),

 'open' => true

 )

 )

);

&#63;>

ログイン後にコピー

方法:使用eval实现:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

<&#63;php

$config = array(

 'project|page|index' => 'content',

 'project|page|nav' => array(

 array(

 'image' => '1.jpg',

 'name' => 'home'

 ),

 array(

 'image' => '2.jpg',

 'name' => 'about'

 )

 ),

 'project|page|open' => true

);

  

$result = array();

foreach($config as $key=>$val){

  

 $tmp = '';

 $keys = explode('|', $key);

  

 for($i=0,$len=count($keys); $i<$len; $i++){

 $tmp .= "['".$keys[$i]."']";

 }

  

 if(is_array($val)){

 eval('$result'.$tmp.'='.var_export($val,true).';');

 }elseif(is_string($val)){

 eval('$result'.$tmp.'='.$val.';');

 }else{

 eval('$result'.$tmp.'=$val;');

 }

  

}

  

print_r($result);

  

&#63;>

ログイン後にコピー

输出结果:

Array
(
[project] => Array
(
[ page ] => Array
(
[index] => content
[nav] => Array
(
[0] => Array
(
[image] => 1.jpg
[name] => home
)
[1] => Array
(
[image] => 2.jpg
[name] => about
)
)
[open] => 1
)
)
)

希望本文所述对大家PHP程序设计的学习有所帮助。

php怎从数组中提取出包含某一字符串的数组的值

$map = array('aa' => '3,4,5,6;',
'bb' => '3,4,6,7;',
'cc' => '5,8,1,3;',
'dd' => '1,5,7,9;'
);
foreach ($map as $k =>$v) {
if (strpos($v, '3,4') !== false) {
echo "'$k' => '$v'
";
}
}
 

php中通过字符串创建数组

先要把字符串处理一下,成为php定义数组的形式,再用eval执行:

$str="
Array
(
[15] => Array
(
[id] => 2304
[fromtype] => item
)
[16] => Array
(
[id] => 2313
[fromtype] => item
)
[17] => Array
(
[id] => 4265
[fromtype] => item
)
)";

$str=preg_replace('/\[([a-z]+)\]\s*=>\s*([0-9a-z]+)/',"'\$1'=>'\$2',",$str);
$p=array('Array','[',']',' )');
$to=array('array',"'","'",'),');
$str=str_replace($p,$to,$str);
//echo $str;

eval("\$arr = ".$str.'; ');
print_r($arr[15]);
 

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート