php - Search for value in object returned from mySQL -


this object returned mysql request:

array(6) {   [0]=> object(stdclass)#48 (2) {     ["meta_key"]=> string(16) "bp_activity_tagz"     ["meta_value"]=> string(1) "1"   }   [1]=> object(stdclass)#30 (2) {     ["meta_key"]=> string(14) "favorite_count"     ["meta_value"]=> string(1) "3"   }   [2]=> object(stdclass)#30 (2) {     ["meta_key"]=> string(14) "bp_activity_tagz"     ["meta_value"]=> string(1) "4"   }   [3]=> object(stdclass)#30 (2) {     ["meta_key"]=> string(14) "bp_activity_tagz"     ["meta_value"]=> string(1) "2"   }   [4]=> object(stdclass)#30 (2) {     ["meta_key"]=> string(14) "bp_activity_spam"     ["meta_value"]=> string(1) "0"   }   [5]=> object(stdclass)#30 (2) {     ["meta_key"]=> string(14) "bp_activity_universal"     ["meta_value"]=> string(0) ""   } } 

depending on meta_key need place each value in own place (one of meta_key might not exist)

of course foreach can trick want execute each function step step, switching case not solution here.

i more searching array-search function object this.

function (imaginary language) if array $array

in $array meta_value meta_key 'bp_activity_tags'    if exist meta_value    else in $array meta_value (every) meta_key 'bp_activity_tagz'    if exist foreach meta_value    else in $array meta_value meta_key 'bp_activity_spam'    if exist    else 

this function requesting array:

    $metas = $wpdb->get_results( $wpdb->prepare( "select meta_key, meta_value {$bp->activity->table_name_meta} activity_id = %d", $activity_id ) );      if ( !empty( $metas ) ) {         $metas = array_map( 'maybe_unserialize', (array) $metas );          foreach( $metas $mkey => $mvalue ) {             wp_cache_set( 'bp_activity_meta_' . $activity_id . '_' . $mkey, $mvalue, 'bp' );         }     } // no result return false if ( empty( $metas ) )     return false;  // maybe, maybe... unserialize $metas = array_map( 'maybe_unserialize', (array) $metas );  // return first item in array if 1, else return metas found $retval = ( 1 == count( $metas ) ? $metas[0] : $metas ); 

i first reformat array:

$data = array(); foreach ($array $values) {     $data[$values->meta_key][] = $values->meta_value; } 

then write code:

if (isset($data['bp_activity_tags'])) {     foo($data['bp_activity_tags']); } ... 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -