array_filter はキーにアクセスできないため、ジョブに適したツールではありません。
あなたがやろうとしていることはこれだと思います:
$stocks = Array (
"stock0" => 1,
"stockdate0" => '',
"stock1" => 3,
"stockdate1" => 'apple',
"stock2" => 2,
"stockdate2" => ''
);
$stockList = array(); //Your list of "stocks" indexed by the number found at the end of "stock"
foreach ($stocks as $stockKey => $stock)
{
sscanf($stockKey,"stock%d", &stockId); // scan into a formatted string and return values passed by reference
if ($stockId !== false)
$stockList[$stockId] = $stock;
}
$stockList は次のようになります。
Array (
[0] => 1
[1] => 3
[2] => 2
)
少し大騒ぎする必要があるかもしれませんが、これがあなたが求めているものだと思います。
ただし、オプションがある場合は、Jeff Ober のアドバイスに従う必要があります。