How to Print associative array in foreach - php

I have an associative array in php, how can i print it with php foreach loop
Array( [0] => Array ( [fb_user_id] => 100000058716604 [accept_status] => 1 ) [1] => Array ( [fb_user_id] => 100004069844270 [accept_status] => 1 ) )
Tried this but no success, i want to print the fb_user_id
foreach($resulttotal[fb_user_id] as $value)
{
echo $value;
}
Please help me, Thanks

You doing incorrectly, It will be like:
foreach($resulttotal as $value)
{
echo $value['fb_user_id'];
}

It would make more sense to use a regular for loop.
for($i = 0; $i < count($resulttotal); $i++) {
$row = & $resulttotal[$i];
echo $row['fb_user_id'];
}
But this could be a foreach too.
foreach($resulttoal as $key) {
echo $key['fb_user_id']
}

Related

print values from multidimensional associative array in php

I have multidimensional array which contain values from database table but values are key value format so I tried to print using foreach loop but unable to get output ,so how to do this using foreach loop
after print_r() getting output like this.
echo '<pre>';
print_r($product_info);
Array
(
[product] => Array
(
[0] => Array
(
[data1] => "value1"
)
[1] => Array
(
[data2] => "value2"
)
)
[type] => 6
)
foreach ($product_info as $key => $val) {
if (is_array($val)) {
foreach ($val as $c => $d) {
echo "" . $c . " is " . $d . ".";
}
}
}
You can try to:
array_shift($product_info)
And then use foreach() on it or simply iterate over:
$product_info['product']
This will do the trick:
foreach ($product_info as $key => $val) {
//look for specific key. And do action if needed.
if($key=='product'){
$all = 0;
$all = COUNT($val); //Count lines
//loop lines
for ($x = 0; $x <= $all; $x++) {
//check if line exist
if(isset($val[$x])){
//loop through lines and echo data
foreach ($val[$x] as $c => $d) {
echo $c.' '.$d.'<br>';
}
}
}
}
if($key=='type'){
echo 'This is type: '.$val;
}
}
You should edit it for your needs but this is how you could do it!

how to get values from php multidimensional array?

How can i get value of number and month from this array.
Array
(
[mane] => Riya
[id] => 70
[order] => Array
(
[details] => Array
(
[number] => 4112
[month] => March
)
)
)
Here is code which i had tried
foreach($order as $row) {
echo $row['details']['number'];
echo $row['details']['month'];
}
Here is a simple solution:
foreach ($order['order'] as $key => $value)
{
echo $value['number']."<BR />";
echo $value['month']."<BR />";
}
Here is a working DEMO for you
You are missing order array.
Change from
echo $row['details']['number'];
echo $row['details']['month'];
Into
echo $row['order']['details']['number'];
echo $row['order']['details']['month'];
// ^ error was here.
You can do like this
foreach($order as $key => $value){
if( is_array($value) and !empty($value) ){
foreach($value as $k => $v){
printData($v['number']);
printData($v['month']);
}
}else{
printData($value);
}
}

How to display values inside multi-dimensional array in php

I would like to get the values of id and name inside this array.
Array
(
[data] => Array
(
[0] => Array
(
[id] => 238345159549706
[members] => Array
(
[data] => Array
(
[0] => Array
(
[id] => 100001130889528
[name] => Sy Cheeze
)
[1] => Array
(
[id] => 100002616426665
[name] => Chun Jenny
)
.......
I've tried using this foreach.
foreach ($acquaintances as $acquaintance)
{
foreach ($acquaintance as $acquaint)
{
$acqID = $acquaint['id'];
$acqName = $acquaint['name'];
echo $acqName;
}
}
but nothing will be displayed. What would I do with my code? Any idea and suggestions please. Thank you!
$array = array
(
array("bla",22,18),
array("blaa",15,13),
array("blaaa",5,2),
array("blaaaa",17,15)
);
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$array[$row][$col]."</li>";
}
echo "</ul>";
}
You can also access the indices directly in your foreach loop. Like this:
foreach($acquaintances['data'] as $acquaintance) {
foreach($acquaintance['members']['data'] as $acquaint) {
$acqID = $acquaint['id'];
$acqName = $acquaint['name'];
echo $acqName . '<br/>';
}
}

count of duplicate elements in an array in php

Hi,
How can we find the count of duplicate elements in a multidimensional array ?
I have an array like this
Array
(
[0] => Array
(
[lid] => 192
[lname] => sdsss
)
[1] => Array
(
[lid] => 202
[lname] => testing
)
[2] => Array
(
[lid] => 192
[lname] => sdsss
)
[3] => Array
(
[lid] => 202
[lname] => testing
)
)
How to find the count of each elements ?
i.e, count of entries with id 192,202 etc
You can adopt this trick; map each item of the array (which is an array itself) to its respective ['lid'] member and then use array_count_value() to do the counting for you.
array_count_values(array_map(function($item) {
return $item['lid'];
}, $arr);
Plus, it's a one-liner, thus adding to elite hacker status.
Update
Since 5.5 you can shorten it to:
array_count_values(array_column($arr, 'lid'));
foreach ($array as $value)
{
$numbers[$value[lid]]++;
}
foreach ($numbers as $key => $value)
{
echo 'numbers of '.$key.' equal '.$value.'<br/>';
}
Following code will count duplicate element of an array.Please review it and try this code
$arrayChars=array("green","red","yellow","green","red","yellow","green");
$arrLength=count($arrayChars);
$elementCount=array();
for($i=0;$i<$arrLength-1;$i++)
{
$key=$arrayChars[$i];
if($elementCount[$key]>=1)
{
$elementCount[$key]++;
} else {
$elementCount[$key]=1;
}
}
echo "<pre>";
print_r($elementCount);
OUTPUT:
Array
(
[green] => 3
[red] => 2
[yellow] => 2
)
You can also view similar questions with array handling on following link
http://solvemyquest.com/count-duplicant-element-array-php-without-using-built-function/
The following code will get the counts for all of them - anything > 1 at the end will be repeated.
<?php
$lidCount = array();
$lnameCount = array();
foreach ($yourArray as $arr) {
if (isset($lidCount[$arr['lid']])) {
$lidCount[$arr['lid']]++;
} else {
$lidCount[$arr['lid']] = 1;
}
if (isset($lnameCount [$arr['lname']])) {
$lnameCount [$arr['lname']]++;
} else {
$lnameCount [$arr['lname']] = 1;
}
}
$array = array('192', '202', '192', '202');
print_r(array_count_values($array));
$orders = array(
array(
'lid' => '',
'lname' => '',
))....
$foundIds = array();
foreach ( $orders as $index => $order )
{
if ( isset( $foundIds[$order['lid']] ) )
{
$orders[$index]['is_dupe'] = true;
$orders[$foundIds[$order['lid']]]['is_dupe'] = true;
} else {
$orders[$index]['is_dupe'] = false;
}
$foundIds[$order['lid']] = $index;
}
Try this code :
$array_count = array();
foreach ($array as $arr) :
if (in_array($arr, $array_count)) {
foreach ($array_count as $key => $count) :
if ($key == $arr) {
$array_count[$key]++;
break;
}
endforeach;
} else {
$array_count[$arr] = 1;
}
endforeach;
Check with in_array() function.

How can i count the two-dimesional array - PHP

Array
(
[0] => Array
(
[not_valid_user] => Array
(
[] => asdsad
)
)
[1] => Array
(
)
[2] => Array
(
[not_valid_user] => Array
(
[] => asdasd
)
)
)
I need the count of array [not_valid_user]
For example:
The above arrays count is 2. How can i get it?
Thanks in advance...
$invalidUsersFound = 0;
foreach ( $data as $k => $v ) {
if ( IsSet ( $v['not_valid_user'] ) === true )
$invalidUsersFound++;
}
This should do the trick.
If what you want is count of all elements in every "not_valid_user" array,
$count=0;
foreach($mainArray as $innerArray)
{
if (isset($innerArray['not_valid_user']) && is_array($innerArray['not_valid_user']))
{
$count += count($innerArray['not_valid_user']);// get the size of the 'not_valid_user' array
}
}
echo $count;//Count of all elements of not_valid_user
<?php
$count=0;
foreach($mainArray as $innerArray)
{
if(isset($innerArray['not_valid_user']))
$count++;
}
echo $count;//Count of not_valid_user
?>
$cnt = 0;
array_map(function ($value) use (&$cnt) {
$cnt += (int)(isset($value["not_a_valid_user"]));
}, $arr);
echo $cnt;
Providing your version of PHP supports anonymous functions.

Categories