计数包含特定字符串的数组键

I have an array like that contain key with same name but with number at the end

array example:

Array
(
    [field_name0] => name 
    [field_name1] => sku_package_height 
    [field_name2] => sku_package_width
    [custom_field] => 13
    [attribute] => 'test'
    [field_name3] => sku_package_length 
    [field_name4] => sku_package_weight
)

from the example above i want to count how many record that has array key that contain field_name, so the result I want will be 5

You can do it like below:-

<?php
$original_array = Array
(
    'field_name0' => 'name',
    'field_name1' => 'sku_package_height',
    'field_name2' => 'sku_package_width',
    'custom_field' => 13,
    'attribute' => 'test',
    'field_name3' => 'sku_package_length',
    'field_name4' => 'sku_package_weight'
);
$search = "field_name";
$counter = 0;
foreach($original_array as $key=> $value){
    if(strstr($key,$search)){
       $counter = $counter+1;
    }
}

echo $counter;

Output:-https://eval.in/704506

Or

<?php
$original_array = Array
(
    'field_name0' => 'name',
    'field_name1' => 'sku_package_height',
    'field_name2' => 'sku_package_width',
    'custom_field' => 13,
    'attribute' => 'test',
    'field_name3' => 'sku_package_length',
    'field_name4' => 'sku_package_weight',
);
$search = "field_name";
$counter = 0;
foreach($original_array as $key=> $value){
    if(is_numeric(strpos($key,$search))){
       $counter = $counter+1;
    }
}

echo $counter;

Output:-https://eval.in/704518

<?php
$array=array("field_name0"=>"name","field_name1"=>"sku_package_height ","field_name2"=>"sku_package_width","custom_field"=>"13","attribute"=>"test","field_name3"=>"sku_package_length", "field_name4"=>"sku_package_weight");

echo  $arraykey= count(preg_grep("/^field_name(\d)+$/",array_keys($array)));
?>

you can do this :

$count = 0;
foreach($array as $key => $value){

   if(strpos($key,"field_name") > -1){
      $count++;
   }

}

$count will have number of keys.

Check the isnumeric of the string position "field_name" in key

$i= 0;
foreach($arrayfields as $keys => $values){

   if (is_numeric(strpos($keys,"field_name"))){
      $i++;
   }

}
echo $i;