@Delonixer

Почему array_search не ищет значение?

Есть такой скрипт (класс для работы с API QIWI):

class QiwiApi 
	{
		private $_phone = '';
		private $_token;
		private $_url;
		
		function __construct($phone, $token) {
			$this->_phone = $phone;
			$this->_token = $token;
			$this->_url   = 'https://edge.qiwi.com/';
		}
		private function sendRequest($method, array $content = [], $post = false) 
		{
			$ch = curl_init();
			if ($post) {
				curl_setopt($ch, CURLOPT_URL, $this->_url . $method);
				curl_setopt($ch, CURLOPT_POST, 1);
				curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($content));
			} else {
				curl_setopt($ch, CURLOPT_URL, $this->_url . $method . '/?' . http_build_query($content));
			}
			curl_setopt($ch, CURLOPT_HTTPHEADER, [
				'Accept: application/json',
				'Content-Type: application/json',
				'Authorization: Bearer ' . $this->_token
			]); 
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			$result = curl_exec($ch);
			curl_close($ch);
			return json_decode($result, 1);
		}
		public function getAccount(Array $params = []) {
			return $this->sendRequest('person-profile/v1/profile/current', $params);
		}
		public function getPaymentsHistory(Array $params = []) {
			return $this->sendRequest('payment-history/v1/persons/' . $this->_phone . '/payments', $params);
		}
		public function getPaymentsStats(Array $params = []) {
			return $this->sendRequest('payment-history/v1/persons/' . $this->_phone . '/payments/total', $params);
		}
		public function getBalance() {
			return $this->sendRequest('funding-sources/v1/accounts/current')['accounts'];
		}
		public function getTax($providerId) {
			return $this->sendRequest('sinap/providers/'. $providerId .'/form');
		}  
		public function sendMoneyToQiwi(Array $params = []) {
			return $this->sendRequest('sinap/terms/99/payments', $params, 1);
		}
		public function sendMoneyToProvider($providerId, Array $params = []) {
			return $this->sendRequest('sinap/terms/'. $providerId .'/payments', $params, 1);
		}
	}


И есть мой кривой код:

$phone  = 'тут_номер';
	$token = 'тут_токен';

	$api = new QiwiApi($phone, $token);

	$balance = $api->getPaymentsHistory(
	array(
	'rows' => '50',
	'operation' => 'IN',
	));

	var_dump(array_search('1471006567213', $balance));
	
	var_dump($balance); // print_r($balance);


Но почему-то array_search не ищет значение, var_dump выдаёт:

bool(false)


А когда я ищу пустую строку, то есть:
var_dump(array_search('', $balance));

То находит аж в самом конце всего громадного массива только (выводится это):

string(9) "nextTxnId"


Ищет только пустую строку.
Вот скриншот var_dump($balance) (частичные данные массива):
59f3ddcc8cbb3975034135.png
  • Вопрос задан
  • 458 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Потому что он и не должен, он только на первом уровне ищет.
Используйте array_walk_recursive, например.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы