Reputation: 67
I have an array like this:
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]
);
which is retrieved from the database. But I need only the key values of Notice_type
and Notice_title
to be compared in all the instances.
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]] = "";
}
}
}
}
I don't know how to get the values of these two specific keys recursively. Can anyone help me regarding this issue?
The above code gets me all the key values any which is not required in my case.
Thanks a lot for spending your time.
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] = "";
}
}
}
My output shows something like this........ as below
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);
Please help me.... I dont understand Whats happening here......
Output:
test:{"pnotify":[ {"type":"New Mail</br>","title":"RE: Hello</a></br>","AssignedBy":"From: SAMANTHA CHUA PEIXUAN.","RefID":"1fbc490c47ae00967623bf93f92b9262","Status":"1","Notice_type":"Mail","Notice_title":"RE: Hello","Notice_AssignedBy":"SAMANTHA CHUA PEIXUAN"},
{"type":"New Mail</br>","title":"RE: Hello</a></br>","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":""}]}
Upvotes: 2
Views: 152
Reputation: 67
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));
I get perfect result from this function......
Upvotes: 1
Reputation: 3608
To get specific value in looping:
$pnotifyArr[$j]['Notice_type'];
$pnotifyArr[$k]['Notice_title'];
example:
foreach($pnotifyArr as $key=>$val)
{
if($pnotifyArr[$key]['Notice_type'] == $pnotifyArr[$key]['Notice_title'])
{
$pnotifyArr[$key][XXX] = '';
}
}
To Remove Empty Key:
foreach($pnotifyArr as $key=>$val)
{
if($pnotifyArr[$key]['Notice_type'] == $pnotifyArr[$key]['Notice_title'])
{
$pnotifyArr[$key][XXX] = '';
}
if (is_null($val))
{
unset($pnotifyArr[$key]);
}
}
Then try print_r print_r($pnotifyArr);
Upvotes: 1
Reputation: 8508
foreach($pnotifyArr as $child_array) {
echo $child_array['Notice_type'];
echo $child_array['Notice_title'];
}
Upvotes: 0