Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组_键-我做错了什么?_Php_Arrays_Key - Fatal编程技术网

PHP数组_键-我做错了什么?

PHP数组_键-我做错了什么?,php,arrays,key,Php,Arrays,Key,我有两个阵列: $fieldNames: array( [0] => array( ['fieldName'] =>'id' ['fieldType'] => 'int(11)' ) [1] => ['fieldName'] =>'adminID' ['fieldType'] =>'int(11)' ) [2] =>array( ['fieldName'] =>'schoolID' [

我有两个阵列:

$fieldNames:

array(
[0] => array(
    ['fieldName'] =>'id'
    ['fieldType'] => 'int(11)'
    )
[1] =>
    ['fieldName'] =>'adminID'
    ['fieldType'] =>'int(11)'
    )
[2] =>array(
    ['fieldName'] =>'schoolID'
    ['fieldType'] =>'int(11)'
    )
[3] => array(
    ['fieldName'] =>'lessonPlanName'
    ['fieldType'] =>'varchar(255)'
    )
[4] =>array(
    ['fieldName'] =>'lessonPlanAssignmentDate'
    ['fieldType'] =>'varchar(255)'
    )
[5] =>array(
   ['fieldName'] =>'lessonPlanDueDate'
   ['fieldType'] =>'varchar(255)'
   )
[6] =>array(
   ['fieldName'] =>'lessonPlanTopics'
   ['fieldType'] =>'varchar(255)'
   )
[7] =>array(
   ['fieldName'] =>'lessonPlanDescription'
   ['fieldType'] =>'text'
   )
[8] =>array(
   ['fieldName'] =>'lessonPlanNotes'
   ['fieldType'] =>'text'
   )
)
$formElementPairs:

array(
   ['lessonPlanName'] =>'Test'
   ['lessonPlanAssignedDate'] =>'05/11/2011'
   ['lessonPlanDueDate'] =>'05/11/2011'
   ['lessonPlanTopics'] => 1
   ['lessonPlanDescription'] =>'test'
)

我试图检查数组2是否缺少数组1中的任何“fieldName”键,然后将它们添加到带有空条目的数组2中。以下代码的工作原理是,我从第一个数组(id、adminId、schoolId等)获取“fieldName”值,但当我使用array_键将它们与第二个数组进行检查时,生成的数组的计数始终为0。还应该提到的是,我一直在这个项目上使用PHP4

//merge arrays
for($fn=0; $fn<count($fieldNames); $fn++) { 
    $thisFieldName = $fieldNames[$fn]['fieldName'];
    $fieldCheckArray = array_keys($formElementPairs, $thisFieldName);
    //$firephp->fb(count($fieldCheckArray));
}
//合并数组
对于($fn=0;$fnfb(count($fieldCheckArray));
}
我是否误解了数组_键和/或在PHP4中是否有更优雅的方法来实现这一点


谢谢

您可以使用
数组\u键\u exists
检查数组2是否缺少任何内容: 数组\密钥\存在

$missing = array();
for($fn=0; $fn<count($fieldNames); $fn++) { 
    $thisFieldName = $fieldNames[$fn]['fieldName'];
    if(!array_key_exists($thisFieldName, $formElementPairs)) {
        $missing[] = $thisFieldName;
    }
}
//do something with $missing
$missing=array();

对于($fn=0;$fnarray\u keys
的第二个参数试图匹配值,而不是
$formElementPairs

我会试试,但知道为什么array\u keys不能像我使用它的方式工作吗?@pruitigoe
array\u keys
返回为传递的值找到的键数组。请参阅本示例(第二个)在w3schools:

看看这个例子(第二个)在w3schools:
结果将是数组([0]=>c)这不是通过检查键的值来获得匹配结果吗?