我有一个这样的数组:
pnotifyArr[] = array(
"type" => "New ".$RowP[0]."</br>",
"title" => "<a href=\"/sys/mailbox/MailInbox.php?ID=$RowP[3]$rid\" onclick=\"javascript:update_status('$RefID')\" target=\"_blank\">".$TitleForShow."</a></br>",
"AssignedBy" => "From: ".trim($RowP[2]).".",
"RefID"=>$RefID,
"Status"=>$Status,
"Notice_type" => $TypeN,
"Notice_title" => $TitleForShow,
"Notice_AssignedBy" => $RowP[2]
);
从数据库中检索。但我只需要在所有实例中比较Notice_type
和Notice_title
的键值。
if(count($pnotifyArr)>0)
{
$rows = sizeof($pnotifyArr);
$columns = sizeof($pnotifyArr[0]);
//$columnkeys = array_key_exists('Notice_type',$pnotifyArr[0]);
for ($i =0; $i < $columns; $i++)
{
for ($j =0; $j < $rows; $j++)
{
for($k = $j+1; $k < $rows; $k++)
{
if( $pnotifyArr[$j][$columnkeys[$i]] == $pnotifyArr[$k][$columnkeys[$i]]) //&& ($pnotifyArr[$j][$columnkeys[$i]] == $pnotifyArr[$k][$columnkeys[$i]]) )
$pnotifyArr[$k][$columnkeys[$i]] = "";
}
}
}
}
我不知道如何递归获取这两个特定键的值。任何人都可以帮我解决这个问题吗?
上面的代码为我提供了所有在我的情况下不需要的关键值。
非常感谢您花时间。
for ($i =0; $i < $columns; $i++)
{
for ($j =0; $j < $rows; $j++)
{
for($k = $j+1; $k < $rows; $k++)
{
//if( $pnotifyArr[$j][$typekeys[$i]] == $pnotifyArr[$k][$typekeys[$i]]) && ($pnotifyArr[$j][$titlekeys[$i]] == $pnotifyArr[$k][$titlekeys[$i]]) )
if( $pnotifyArr[$j]['Notice_type'] == $pnotifyArr[$k]['Notice_type'] && $pnotifyArr[$j]['Notice_title'] == $pnotifyArr[$k]['Notice_title'] )
$pnotifyArr[$k][$i] = "";
}
}
}
我的输出显示如下........如下
for ($i =0; $i < $columns; $i++)
{
for ($j =0; $j < $rows; $j++)
{
for($k = $j+1; $k < $rows; $k++)
{
//if( $pnotifyArr[$j][$typekeys[$i]] == $pnotifyArr[$k][$typekeys[$i]]) && ($pnotifyArr[$j][$titlekeys[$i]] == $pnotifyArr[$k][$titlekeys[$i]]) )
if( $pnotifyArr[$j]['Notice_type'] == $pnotifyArr[$k]['Notice_type'] && $pnotifyArr[$j]['Notice_title'] == $pnotifyArr[$k]['Notice_title'] )
{
$pnotifyArr[$k][$i] = "";
}
}
}
}
foreach ($pnotifyArr as $key => $value) {
if ($value="") {
unset($pnotifyArr[$key]);
}
}
$pnotifyArr = array_values($pnotifyArr);
请帮助我......我不明白这里发生了什么......
输出:
测试:{ “pnotify”:[ {“type”:“New Mail&lt; / br&gt;”,“title”:“RE:Hello&lt; / a&gt;&lt; / br&gt;”,“AssignedBy”:“From:SAMANTHA CHUA PEIXUAN。”,“RefID”: “1fbc490c47ae00967623bf93f92b9262”,“Status”:“1”,“Notice_type”:“Mail”,“Notice_title”:“RE:Hello”,“Notice_AssignedBy”:“SAMANTHA CHUA PEIXUAN”},
{“type”:“New Mail&lt; / br&gt;”,“title”:“RE:Hello&lt; / a&gt;&lt; / br&gt;”,“AssignedBy”:“From:SAMANTHA CHUA PEIXUAN。”,“ RefID“:”ead077c279a7cfdf60882fcc75a8f23b“,”Status“:”1“,”Notice_type“:”Mail“,”Notice_title“:”RE:Hello“,”Notice_AssignedBy“:”SAMANTHA CHUA PEIXUAN“,”0“:”“, “1”: “”, “2”: “”, “3”: “”, “4”: “”, “5”: “”, “6”: “”, “7”: “”}] }
答案 0 :(得分:1)
获取循环中的特定值:
$pnotifyArr[$j]['Notice_type'];
$pnotifyArr[$k]['Notice_title'];
示例:
foreach($pnotifyArr as $key=>$val)
{
if($pnotifyArr[$key]['Notice_type'] == $pnotifyArr[$key]['Notice_title'])
{
$pnotifyArr[$key][XXX] = '';
}
}
删除空键:
foreach($pnotifyArr as $key=>$val)
{
if($pnotifyArr[$key]['Notice_type'] == $pnotifyArr[$key]['Notice_title'])
{
$pnotifyArr[$key][XXX] = '';
}
if (is_null($val))
{
unset($pnotifyArr[$key]);
}
}
然后尝试print_r print_r($pnotifyArr);
答案 1 :(得分:1)
function array_uniquecolumn($ arr) { $ temp_array = array(); $ temp_array1 = array(); $ final_array = array();
foreach ($arr as $key => $value) {
$temp_array[] = $value["Notice_type"].$value["Notice_title"];
}
//print_r ($temp_array);
$temp_array = array_unique($temp_array);
$temp_array1 = array_keys($temp_array);
//print_r ($temp_array1);
foreach ($temp_array1 as $key => $value) {
$final_array[] = $arr[$value];
}
return ($final_array);
}
//print_r( array_uniquecolumn($pnotifyArr));
我从这个功能中得到了完美的结果......
答案 2 :(得分:0)
foreach($pnotifyArr as $child_array) {
echo $child_array['Notice_type'];
echo $child_array['Notice_title'];
}