Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #6108

Re: array filtering question

Message-ID <1718282.RzYSdqBbuY@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Organization PointedEars Software (PES)
Date 2012-05-21 19:26 +0200
Subject Re: array filtering question
Newsgroups comp.lang.php
References <GuWdnQ9JU-sg0ifSnZ2dnUVZ_omdnZ2d@cablespeedmi.com> <jpdld1$g5p$1@dont-email.me>
Followup-To comp.lang.php

Followups directed to: comp.lang.php

Show all headers | View raw


Shake wrote:

> El 21/05/2012 16:22, bill escribió:
>> I have a POST array with about 200 elements.
>> There MAY be one or more key elements that start with deleteF~
>> (for example deleteF~EAP, deleteF~Lowfee)
>>
>> What I want to know is if any array element begins with deleteF~
> 
> Perhaps you can use multidimensional array here.
> 
> If you have something like:
> 
> <input type="checkbox" name="item_1" value="x" />
> <input type="checkbox" name="[deleteF~][item_2]" value="x" />
> <input type="checkbox" name="item_3" value="x" />
> <input type="checkbox" name="[deleteF~][item_4]" value="x" />
> 
> Perhaps if better to change to:
> 
> Then the POST will be:
> 
> $_POST['item_1] = 'X';
> $_POST['item_3] = 'X';
> $_POST['deleteF~']['item_2] = 'X';
> $_POST['deleteF~']['item_4] = 'X';
> 
> And you can do:
> 
> if(isset($_POST['deleteF~'])) foreach($_POST['deleteF~'] as $Item) {
> 
> // Do things with this item.
> }

However, if for some reason the markup cannot be changed, the solution still 
is rather simple:

  $matching_keys = array_filter(array_keys($_POST),
    function ($key) {
      return preg_match('/^deleteF~/', $key);
    });

  if ($matching_keys)
  {
    /* … */
  }

<http://php.net/array_keys>
<http://php.net/preg_match>
<http://php.net/array_filter>


PointedEars
-- 
var bugRiddenCrashPronePieceOfJunk = (
    navigator.userAgent.indexOf('MSIE 5') != -1
    && navigator.userAgent.indexOf('Mac') != -1
)  // Plone, register_function.js:16

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

array filtering question bill <nobody@spamcop.net> - 2012-05-21 10:22 -0400
  Re: array filtering question Jerry Stuckle <jstucklex@attglobal.net> - 2012-05-21 10:46 -0400
    Re: array filtering question bill <nobody@spamcop.net> - 2012-05-21 11:18 -0400
      Re: array filtering question Jerry Stuckle <jstucklex@attglobal.net> - 2012-05-21 12:42 -0400
        Re: array filtering question bill <nobody@spamcop.net> - 2012-05-21 15:13 -0400
  Re: array filtering question Shake <QUITAESTO@QUITAESTO.NOES> - 2012-05-21 17:01 +0200
    Re: array filtering question bill <nobody@spamcop.net> - 2012-05-21 11:20 -0400
    Re: array filtering question Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-05-21 19:26 +0200
      Re: array filtering question bill <nobody@spamcop.net> - 2012-05-21 15:19 -0400

csiph-web