Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. function get_non_zero( $str_keys, $data ) {
  2. $keys = explode( ',', $str_keys );
  3. foreach ( $keys as $key ) {
  4. if ( ! empty( $data[ $key ] ) ) {
  5. return $data[ $key ];
  6. }
  7. }
  8.  
  9. return null;
  10. }
  11.  
  12. $data = ['key0' => 0, 'key1' => 1, 'key3'=> 3];
  13. echo( get_non_zero( 'key1,key2', $data ) ); // выведет 1
  14.  
  15. $data = ["key0" => 0, "key1" => 1, "key3"=> 3];
  16.  
  17. $search = array_flip(explode(",", "key1,key2"));
  18. $result = array_intersect_key($data, $search);
  19.  
  20. echo count($result) > 1 ? null : array_pop($result);
  21.  
  22. function getNonZero($keys, $data)
  23. {
  24. $search = array_flip(explode(",", $keys));
  25. $result = array_intersect_key($data, $search);
  26.  
  27. if (count($result) > 1):
  28. return null;
  29. else:
  30. return array_pop($result);
  31. endif;
  32. }
  33.  
  34. $data = ["key0" => 0, "key1" => 1, "key3"=> 3];
  35. $search = "key1,key2";
  36.  
  37. echo getNonZero($search, $data);
  38.  
  39. function searchInArray($value)
  40. {
  41. preg_match("([w+]{1,})", $value, $matches);
  42. return !empty($matches) ? $matches[0] : $value;
  43. }
  44.  
  45. function getNonZero($search, $data)
  46. {
  47. $search = array_map("searchInArray", explode(",", $search));
  48. $result = array_intersect_key($data, array_flip($search));
  49.  
  50. if (count($result) === 1):
  51. return is_array($result) ? array_shift($result[key($result)]) : $result;
  52. else:
  53. return null;
  54. endif;
  55. }
  56.  
  57. $data = ['key0' => 0, 'fields' => ['name_1'=>1], 'key3'=> 3];
  58. $sting = 'name,entry.436917433,billing_first_name,fields[name_1]';
  59.  
  60. echo getNonZero($sting, $data);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement