AMcoder - javascript, python, java, html, php, sql

PHP - որոնել / զտել բազմաչափ զանգվածը ըստ տող(ների)

Ես ունեմ այսպիսի բազմաչափ զանգված.

$testarray = array(
    array(
        'First name' => 'Johnny',
        'Last name' => 'Milthers',
        'Age' => '24'
    ),
    array(
        'First name' => 'Toby',
        'Last name' => 'Thomson',
        'Age' => '25'), 
    ),
    array(
        'First name' => 'Jack',
        'Last name' => 'Johnson',
        'Age' => '25'),
    );

Ինչպե՞ս փոխանցեմ որոնման տողերը, ինչպիսին է «Ջոն», որպեսզի այնուհետև $testarray զանգվածը պարունակի միայն առաջին և վերջին զանգվածը:

Ես պետք է փոխանցեմ որոնման տերմին, որը վերադարձնում է ամբողջ ենթազանգվածը, եթե ստեղների արժեքներից որևէ մեկը պարունակում է այդ տողը:

նաև, եթե ես անցնեմ «Jack Johnson», $testarray-ը պետք է պարունակի միայն վերջին զանգվածը:

  • Սա հնարավո՞ր է, թե՞ ես սխալ ճանապարհով եմ գնում դրան: ինչպես են աշխատում նորմալ որոնման արդյունքները տվյալների բազաների համար:

Ես դիտել եմ բազմաթիվ stack overflow էջեր (և PHP manual + google), բայց ոչինչ ինձ չի օգնել, եթե ինչ-որ բան եմ տեղադրում, որն արդեն պատասխան ունի, խնդրում եմ մեկնաբանել ինձ հղումը:

Շատ շնորհակալ եմ:


  • Ձեր տված զանգվածը լի է շարահյուսական սխալներով 15.11.2013

Պատասխանները:


1

Ահա դա անելու եղանակներից մեկը, նկատի ունենալով, որ այն կաշխատի միայն այն դեպքում, եթե որոնման զանգվածները տեղադրվեն անմիջապես արտաքին որոնման զանգվածում:

function search_array($text, $array) {
    return array_filter($array, function($a) use($text){

       return stristr(implode(" ", $a), $text);

    });
}

http://sandbox.onlinephpfunctions.com/code/09e1187ccedba0804de5d797c350e218b05951cd

15.11.2013

2

Ես սա չեմ փորձարկել, բայց սա պետք է աշխատի...

function find_in_array($search, $testarray) {
  $pattern = '*'.$search.'*';
  $array = array_filter($testarray, function($entry) use ($pattern) {
    foreach($entry as $key=>$value) {
      if (fnmatch($pattern, $value)) return true;
    }
    return false;
  });
  return $array;
 }
15.11.2013
  • Ես փորձեցի սա և այն լավ աշխատեց, բացառությամբ, որ կար մի խնդիր (ինձ համար), որ կա սահմանափակում նիշերի քանակի համար, որոնց դեմ կարող եք փորձարկել fnmatch-ում... այնպես որ, եթե փորձում եք որոնել զանգվածի տարրը ավելի քան 260 նիշը սխալ է թույլ տալիս: 30.04.2014
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..