PHP 小白,数组取值问题!

php中文网
发布: 2016-06-23 13:01:25
原创
976人浏览过

数级是这样的:(从一大堆里面挑了一组数据,实际上我是想把所有的数据都取出来 echo 到视窗里)
    [16] => array
        (
            [option_id] => 30
            [option_name] => att_type
            [option_value] => rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc
        )


我要达到的目的是,当我echo option_name的值arr_type(也就是直接 echo $arr_type)时,打印出 rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc来。
目前知道用循环来赋值,可是只能用echo $option_name来取到att_type这个值,不能echo $att_type来取 rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc。大神就帮我写一段代码实现我的想法吧,小白求助啊!!!!!!

问问小宇宙
问问小宇宙

问问小宇宙是小宇宙团队出品的播客AI检索工具

问问小宇宙 77
查看详情 问问小宇宙


回复讨论(解决方案)

大神来救我。。。。。。。。。。

上面有写错的地方,所有的arr_type都写错了,应该是att_type

大神快来救我啊。。。。。。。。。。。

不把代码贴出来很难帮助

不把代码贴出来很难帮助


代码很简单啊,就是先从数据库里select出来,放在一个数组里,然后print_r出来以后就是这样了。
$arr = $this->Setting_model->get_setting();// $query=$this->db->get('options');return $query->result_array();
$this->load->p($arr);die;

数据库好像跟这个没关系吧,我就不贴了

$this->load->p()//public function p(){echo '

;print_r($arr);echo '
登录后复制
';}

但你的这个需求实在是太另类、太奇异了

$a = array(    16 => Array        (            'option_id' => 30,            'option_name' => 'att_type',            'option_value' => 'rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc',        ),);foreach($a as $r) {  ${$r['option_name']} = $r['option_value'];  echo $att_type;}
登录后复制
rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc

不知道是这个意思不

$arr =  Array    (            'option_id' => 30,            'option_name' => 'att_type',            'option_value' => 'rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc'    );$a[$arr['option_name']] = $arr['option_value'];extract($a);var_dump($att_type);
登录后复制

但你的这个需求实在是太另类、太奇异了

$a = array(    16 => Array        (            'option_id' => 30,            'option_name' => 'att_type',            'option_value' => 'rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc',        ),);foreach($a as $r) {  ${$r['option_name']} = $r['option_value'];  echo $att_type;}
登录后复制
rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc


这个肯定不行,会报错,未定义的att_type

不知道是这个意思不

$arr =  Array    (            'option_id' => 30,            'option_name' => 'att_type',            'option_value' => 'rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc'    );$a[$arr['option_name']] = $arr['option_value'];extract($a);var_dump($att_type);
登录后复制



报错,未定义的option_name,option_value。。。等等,很多(Undefined index: option_value)

是吗?想当然了吧?!
我运行结果都出来了

我知道肯定 会用到extract 这个函数的,功能是好像是把name的值赋给value

是吗?想当然了吧?!
我运行结果都出来了


把你结果抓个图,我怎么运行出来就报错呢

但你的这个需求实在是太另类、太奇异了

$a = array(    16 => Array        (            'option_id' => 30,            'option_name' => 'att_type',            'option_value' => 'rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc',        ),);foreach($a as $r) {  ${$r['option_name']} = $r['option_value'];  echo $att_type;}
登录后复制
rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc



我又自做聪明了,没看懂 ${$r['option_name']} = $r['option_value'];这句话,所以就改成 $r['option_name']= $r['option_value'];了。不好意思啊。这个就解决了,还要麻烦问一句, ${$r['option_name']} = $r['option_value'];的意思是?真的是看不懂

为公平起见,我在用 码农谷 的在线编辑器演示给你

阅读手册中的 可变变量 一节

阅读手册中的 可变变量 一节



 大神 又出情况了!!!

为了使用数组的可变变量名,你需要解决一个歧义问题。就是,如果你写$$a[1],解析器需要明白究竟你的意思是要把$a[1]当成一个变量,还是要把$$a当成变量、[1]指的是这个变量的索引。解决这个歧义问题的语法是:第一种情况使用${$a[1]},第二种情况使用${$a}[1]。

谢谢大神们!!!学会了

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号