Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Buscar un string en un array en PHP llamando a una API

Estas en el tema de Buscar un string en un array en PHP llamando a una API en el foro de PHP en Foros del Web. quiero buscar una cadena dentro de un array que me regresa una API este es lo que me regresa la API Código HTML: [ { ...
  #1 (permalink)  
Antiguo 27/04/2020, 11:28
 
Fecha de Ingreso: abril-2015
Mensajes: 128
Antigüedad: 5 años, 2 meses
Puntos: 0
Buscar un string en un array en PHP llamando a una API

quiero buscar una cadena dentro de un array que me regresa una API

este es lo que me regresa la API

Código HTML:
[
{
    "id": "5a162db4-4443-4ee8-828a-372562230bf9",
    "supplyItemNumber": "PDH2OS001",
    "type": "Machine",
    "category": "Coolants & Lubricants",
    "priority": "Alto",
    "group": "Lubricants",
    "description": "",
    "customerUnitPrice": 0.00,
    "inventoryUnit": "Litre",
    "briefDescription": "",
    "accountId": null,
    "manufacturerCode": null,
    "supplierId": null,
    "manufacturerItemNumber": "",
    "manufacturerItemRevision": "",
    "manufacturerText": "",
    "createdDate": "2018-12-11T22:57:58Z",
    "createdById": "6e6a5c41-f62c-460b-96f4-fcab58381bbe",
    "modifiedDate": "2019-03-06T15:46:56Z",
    "modifiedById": "6e6a5c41-f62c-460b-96f4-fcab58381bbe",
    "taxCodeNumber": null,
    "maxQuantity": 0.00,
    "minQuantity": 0.00
},
{
    "id": "96d85b76-5231-4ce4-95fc-7fa9c915caab",
    "supplyItemNumber": "PDH2OS002",
    "type": "Machine",
    "category": "Coolants & Lubricants",
    "priority": "Alto",
    "group": "Lubricants",
    "description": "",
    "customerUnitPrice": 0.00,
    "inventoryUnit": "Litre",
    "briefDescription": "",
    "accountId": null,
    "manufacturerCode": null,
    "supplierId": null,
    "manufacturerItemNumber": "",
    "manufacturerItemRevision": "",
    "manufacturerText": "",
    "createdDate": "2018-12-11T22:57:58Z",
    "createdById": "6e6a5c41-f62c-460b-96f4-fcab58381bbe",
    "modifiedDate": "2019-03-06T15:46:45Z",
    "modifiedById": "6e6a5c41-f62c-460b-96f4-fcab58381bbe",
    "taxCodeNumber": null,
    "maxQuantity": 0.00,
    "minQuantity": 0.00
} ]
y este es mi codigo con el que lo busco

Código PHP:
Ver original
  1. var_export ($response);
  2. $indice = array_search($direccion,$response,false);
  3. echo "El número 5 está en el indice: " . $indice;

pero me regresa el siguiente error

Warning: array_search() expects parameter 2 to be array, string given in
  #2 (permalink)  
Antiguo 27/04/2020, 12:58
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.065
Antigüedad: 11 años, 9 meses
Puntos: 2215
Respuesta: Buscar un string en un array en PHP llamando a una API

Parece que estás recibiendo un JSON y solo tienes que convertirlo en array:

Código PHP:
Ver original
  1. $response = json_decode($response);

Luego, como es un array asociativo, seguramente deberás usar array_column para especificar dónde realizar la búsqueda, algo como:

Código PHP:
Ver original
  1. $indice = array_search('PDH2OS002', array_column($response, 'supplyItemNumber'));

Con los datos que pusiste, $indice debería devolver 1.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 27/04/2020, 15:04
 
Fecha de Ingreso: abril-2015
Mensajes: 128
Antigüedad: 5 años, 2 meses
Puntos: 0
Respuesta: Buscar un string en un array en PHP llamando a una API

muchas gracias, oye y para que ve devuelva toda la información de esa calumna de arregro

por ejemplo yo busco el 'PDH2OS002' y queiro que me regrese esta información de ese ITEM "category","createdDate"

Última edición por antonio_dsanchez; 27/04/2020 a las 15:11 Razón: agregar datos
  #4 (permalink)  
Antiguo 27/04/2020, 19:01
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.065
Antigüedad: 11 años, 9 meses
Puntos: 2215
Respuesta: Buscar un string en un array en PHP llamando a una API

Ya tienes el índice, úsalo para acceder al elemento en el array original y listo.
__________________
- León, Guanajuato
- GV-Foto



La zona horaria es GMT -6. Ahora son las 13:29.