Heim > Backend-Entwicklung > PHP-Tutorial > 请问下这样的例子如何正确索引表单数组

请问下这样的例子如何正确索引表单数组

WBOY
Freigeben: 2016-06-23 13:57:05
Original
834 Leute haben es durchsucht

感觉说起来有点绕,这样吧,我把遇到的这个问题说明下
客户端表单有多个数组,比如item数组,info数组,例如:







现在要验证表单,这4个项都要必填

我后台封装了一个函数,直接验证$_REQUEST['id'] 为空即可
但是遇到数组就很麻烦,因为函数的原因,传值的时候是这样传的

function validator($name){
    判断$_REQUEST['$name']是否为空
}

validator(‘id’),这样就比较好操作
如果不是表单数组还好,表单数组就非常麻烦,需要,把元素正确的索引才可以

现在我想问的是如何操作可以实现这样的效果
validator('item["title"]')

函数内可以正常的索引为
$_REQUEST['item']['title']

无论数组层数,只要传进去正确的数组元素字符串,就可以正确索引该元素的表单项,找不到这样的函数,只能用拆解字符串的办法,不知道有没有更好的办法

说白了就是如何正确的获取到未知的item和数组索引title,当然这是个2层的范例,如果能实现更多层更好


回复讨论(解决方案)

貌似没有办法通过数组的函数实现这个

array_walk_recursive 应该就可以了
关键在与判空后的操作

array_walk_recursive 传入的是数组,关键是传入的是表单数组中的元素,字符串居多

$ar = array(  'item' => array('title' => '', 'intro' => ''),  'info' => array('userid' => '', 'username' => ''),);function validator($v, $k) {  if(empty($v)) echo "$k 不能为空\n";}array_walk_recursive($ar, 'validator');
Nach dem Login kopieren
title 不能为空intro 不能为空userid 不能为空username 不能为空
Nach dem Login kopieren

当然打印的内容多半不符合你的要求
所以我说“关键在与判空后的操作”

明白了,谢谢,是全部读取判断

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage