1

多次元配列があり、内部配列に「編集」が含まれている場合、親配列を削除したいなどの問題があります。配列は次のようになります

[fields] => Array
    (
        [0] => Array
            (
                [header] => Array
                    (
                        [fieldName] => edit
                        [displayName] => Edit
                        [width] => 40
                        [group] => 0,1,2,3
                        [cssClass] => dgAssetsCentered
                    )

                [visibility] => Array
                    (
                        [showOnStart] => 1
                        [editable] => 
                    )

                [cell] => Array
                    (
                        [type] => link
                        [params] => Array
                            (
                                [label] => Edit
                            )

                    )

                [sort] => Array
                    (
                        [sortable] => 1
                    )

                [validator] => Array
                    (
                        [name] => 
                        [params] => 
                    )

            )

        [1] => Array
            (
                [header] => Array
                    (
                        [fieldName] => OFFERID
                        [displayName] => Offer Id
                        [group] => 0

内部配列に「編集」が含まれているため、配列 0 を削除したい [header] 配列を削除できますが、[0] 配列を削除できません。提案してください。

ありがとうアレックス。

4

2 に答える 2

1
foreach($fields as $key => $field)
{
  if(isset($field['header']['fieldName']) && $field['header']['fieldName'] == 'edit')
    unset($field[$key]);
}

UPD:また、配列を削除したい場合、要素が「編集」に等しい場合は、次のアルゴリズムを試してください:

foreach($fields AS $key => $array)
{
  foreach($array as $innered)
  {
    if(array_search('edit', $innered)) 
    {
      unset($fields[$key]);
      break;
    }
  }
}
于 2012-06-14T20:31:06.960 に答える
1

unset(fields);配列全体をクリアします。

unset(fields[0]);fields 配列内の要素 0 をクリアします

于 2012-06-14T20:31:18.373 に答える