I have two arrays:
我有两个数组:
$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:
$ formElementPairs:
array(
['lessonPlanName'] =>'Test'
['lessonPlanAssignedDate'] =>'05/11/2011'
['lessonPlanDueDate'] =>'05/11/2011'
['lessonPlanTopics'] => 1
['lessonPlanDescription'] =>'test'
)
)
I'm trying to check to see if array 2 is missing any of the 'fieldName' keys from array 1 and then add them to array 2 with null entries. The following code works in that I am getting the "fieldName" values from the first array (id, adminId, schoolId, etc.) but when I go to check them against the second array using array_keys, my resulting array always has a count of 0. Should also mention I am stuck using PHP4 on this project.
我正在尝试检查数组2是否缺少数组1中的任何'fieldName'键,然后将它们添加到具有空条目的数组2中。以下代码的工作原理是我从第一个数组(id,adminId,schoolId等)获取“fieldName”值,但是当我使用array_keys检查第二个数组时,我得到的数组总是有一个0.还应该提到我在这个项目中使用PHP4卡住了。
//merge arrays
for($fn=0; $fn<count($fieldNames); $fn++) {
$thisFieldName = $fieldNames[$fn]['fieldName'];
$fieldCheckArray = array_keys($formElementPairs, $thisFieldName);
//$firephp->fb(count($fieldCheckArray));
}
Am I misunderstanding array_keys and/or is there a more elegant way to do this in PHP4?
我是否误解了array_keys和/或在PHP4中有更优雅的方法吗?
Thanks
谢谢
2 个解决方案
#1
1
You can use the array_key_exists
to check if array 2 is missing anything: array_key_exists
您可以使用array_key_exists检查数组2是否缺少任何内容:array_key_exists
$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
#2
1
The second argument to array_keys
is attempting to match the values and not the keys of $formElementPairs
.
array_keys的第二个参数是尝试匹配值而不是$ formElementPairs的键。
#1
1
You can use the array_key_exists
to check if array 2 is missing anything: array_key_exists
您可以使用array_key_exists检查数组2是否缺少任何内容:array_key_exists
$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
#2
1
The second argument to array_keys
is attempting to match the values and not the keys of $formElementPairs
.
array_keys的第二个参数是尝试匹配值而不是$ formElementPairs的键。